无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 3586|回复: 5
打印 上一主题 下一主题

求助,xp批处理变量截取问题(半解决)

[复制链接]
跳转到指定楼层
1#
发表于 2007-5-3 23:03:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
情况是这样的
此批处理目的是针对性的把已经虚拟的盘符取消
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 编辑 ]
2#
发表于 2007-5-3 23:09:32 | 只看该作者
楼主可以参考一下FOR的帮助.
for /?
里面有详细介绍的.

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

[ 本帖最后由 chenall 于 2007-5-3 11:10 PM 编辑 ]
回复

使用道具 举报

3#
 楼主| 发表于 2007-5-3 23:11:02 | 只看该作者
我用FOR /F  %%j IN (d:\xnp.txt) DO subst %%%j:~0,2%  /d 就出错,说参数不对
回复

使用道具 举报

4#
 楼主| 发表于 2007-5-3 23:14:38 | 只看该作者
原帖由 chenall 于 2007-5-3 11:09 PM 发表
楼主可以参考一下FOR的帮助.
for /?
里面有详细介绍的.

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

非常感谢,确实可以,但是看不懂 %%~dj ,这个是什么意思呢,仔细看过for的帮助了,没有这个吧,能说说吗
回复

使用道具 举报

5#
 楼主| 发表于 2007-5-3 23:27:46 | 只看该作者
假如不是要第1、2个字符,而是第5、6、7这三个字符呢?
回复

使用道具 举报

6#
 楼主| 发表于 2007-5-7 00:16:39 | 只看该作者
顶上,希望能完美解决:)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-28 11:48

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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