找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 33236|回复: 7

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

[复制链接]
发表于 2010-3-29 21:19:57 | 显示全部楼层 |阅读模式
[已解决] 具体看 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   



这个通用批处理该如何写啊?
发表于 2010-3-29 22:06:42 | 显示全部楼层
如果批处理放在C盘,文本文件放在D盘,怎么减?
 楼主| 发表于 2010-3-29 22:16:06 | 显示全部楼层

回复 2楼 的帖子

修改好了等待 大大门 帮助。。。。
发表于 2010-3-29 22:37:58 | 显示全部楼层
无论是标题还是内容,都写得绕口至极,能换个正常的描述吗?实在是看不懂了。
发表于 2010-3-29 22:49:38 | 显示全部楼层
  1. @echo off
  2. set /p file=请把要释放资源的文件拖动至此:
  3. set newpath=%file:C:\=%
  4. echo,%newpath%
  5. pause
复制代码
 楼主| 发表于 2010-3-29 23:38:55 | 显示全部楼层

回复 5楼 的帖子

兄弟你这个不通用啊 能否智能截取 C:\  呢??
发表于 2010-3-29 23:52:48 | 显示全部楼层
@echo off&setlocal EnableDelayedExpansion
set /p file=请把要释放资源的文件拖动至此:
set newpath=!file:%~dp0=!
echo,%newpath%
pause
发表于 2010-3-30 08:13:40 | 显示全部楼层
无法截取带:字符的,请分别用%~d0 跟%~p0 然后组合
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 13:21 , Processed in 0.017831 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表