[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] 如何截取利用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   



这个通用批处理该如何写啊?

如果批处理放在C盘,文本文件放在D盘,怎么减?

TOP

回复 2楼 的帖子

修改好了等待 大大门 帮助。。。。

TOP

无论是标题还是内容,都写得绕口至极,能换个正常的描述吗?实在是看不懂了。
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。

心在天山,身老沧州。

TOP

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

TOP

回复 5楼 的帖子

兄弟你这个不通用啊 能否智能截取 C:\  呢??

TOP

@echo off&setlocal EnableDelayedExpansion
set /p file=请把要释放资源的文件拖动至此:
set newpath=!file:%~dp0=!
echo,%newpath%
pause

TOP

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

TOP

返回列表