Board logo

标题: [其他] 如何截取利用set /p拖曳/拖放文件到cmd窗口得到的文件的相对路径 [打印本页]

作者: kswdiy    时间: 2010-3-29 21:19     标题: 如何截取利用set /p拖曳/拖放文件到cmd窗口得到的文件的相对路径

[已解决] 具体看 7楼的回复

看题目大家应该知道了吧??

不知道的 我 举个例子吧

比如的

批处理1.cmd 和2.txt 都在同一分区

有个文件在  与批处理为 1.cmd 在 c:\    路径为   C:\1.cmd
有个文件为2.txt 在 C:\新文件夹\   的里面     路径为   C:\新文件夹\2.txt

我在 1.cmd里面写有:

set /p file=请把要释放资源的文件拖动至此:
下面不会写了。。。





我想把截取新的变量为: newpath

这个行 的变量 是 截取 将2.txt文件 拖入到 1.cmd   窗口中后的 路径 减去 本批处理路径后剩下 路径 也就是 剩下   新文件夹\2.txt      (这个才是我要的变量 )  

就是2.txt文件路径  C:\新文件夹\2.txt

  我这个 批处理的 路径在C:\


也就是说的  newpath 变量是    C:\新文件夹\2.txt   减去 C:\    后剩下的    新文件夹\2.txt   



这个通用批处理该如何写啊?
作者: bat007    时间: 2010-3-29 22:06

如果批处理放在C盘,文本文件放在D盘,怎么减?
作者: kswdiy    时间: 2010-3-29 22:16     标题: 回复 2楼 的帖子

修改好了等待 大大门 帮助。。。。
作者: namejm    时间: 2010-3-29 22:37

无论是标题还是内容,都写得绕口至极,能换个正常的描述吗?实在是看不懂了。
作者: bat007    时间: 2010-3-29 22:49

  1. @echo off
  2. set /p file=请把要释放资源的文件拖动至此:
  3. set newpath=%file:C:\=%
  4. echo,%newpath%
  5. pause
复制代码

作者: kswdiy    时间: 2010-3-29 23:38     标题: 回复 5楼 的帖子

兄弟你这个不通用啊 能否智能截取 C:\  呢??
作者: slore    时间: 2010-3-29 23:52

@echo off&setlocal EnableDelayedExpansion
set /p file=请把要释放资源的文件拖动至此:
set newpath=!file:%~dp0=!
echo,%newpath%
pause
作者: caruko    时间: 2010-3-30 08:13

无法截取带:字符的,请分别用%~d0 跟%~p0 然后组合




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2