无忧启动论坛

标题: 求助,xp批处理变量截取问题(半解决) [打印本页]

作者: wjh6088    时间: 2007-5-3 23:03
标题: 求助,xp批处理变量截取问题(半解决)
情况是这样的
此批处理目的是针对性的把已经虚拟的盘符取消
1、运行环境为xp的cmd
2、指定目录下有个文本,其内容是由subst命令产生的,命令如下subst > d:\xnp.txt
其内容假设为
  1. h:\: => D:\我的文档\桌面\h
  2. i:\: => D:\我的文档\桌面\i
  3. j:\: => D:\我的文档\桌面\j
复制代码
3、要求能从xnp.txt中依次读出前2个字符,并传递到变量,然后用subst 变量 /d 来取消
我的做法是
  1. FOR /F  %%j IN (d:\xnp.txt) DO set xnp=%%j
  2. subst %xnp:~0,2% /d
复制代码
这样只能消除最后一个盘符,不能消除3个
怎么办呢,请指教一下,谢谢

ps:重新启动以后虚拟盘都会消失的办法就不必提了,这里只讨论for如何完成这个任务

[ 本帖最后由 wjh6088 于 2007-5-7 12:15 AM 编辑 ]
作者: chenall    时间: 2007-5-3 23:09
楼主可以参考一下FOR的帮助.
for /?
里面有详细介绍的.

  1. FOR /F  %%j IN (d:\xnp.txt) DO subst %%~dj /d
复制代码

[ 本帖最后由 chenall 于 2007-5-3 11:10 PM 编辑 ]
作者: wjh6088    时间: 2007-5-3 23:11
我用FOR /F  %%j IN (d:\xnp.txt) DO subst %%%j:~0,2%  /d 就出错,说参数不对
作者: wjh6088    时间: 2007-5-3 23:14
原帖由 chenall 于 2007-5-3 11:09 PM 发表
楼主可以参考一下FOR的帮助.
for /?
里面有详细介绍的.

FOR /F  %%j IN (d:\xnp.txt) DO subst %%~dj /d

非常感谢,确实可以,但是看不懂 %%~dj ,这个是什么意思呢,仔细看过for的帮助了,没有这个吧,能说说吗
作者: wjh6088    时间: 2007-5-3 23:27
假如不是要第1、2个字符,而是第5、6、7这三个字符呢?
作者: wjh6088    时间: 2007-5-7 00:16
顶上,希望能完美解决:)




欢迎光临 无忧启动论坛 (http://wuyou.net./) Powered by Discuz! X3.3