中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-04 18:25
48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » 如何读取txt文件中的路径,并作为变量在其它语句中使用
可打印版本  1,340 / 6
第1楼 emote 发表于 2007-05-27 21:10
初级用户 发帖 41 积分 114
如何读取txt文件中的路径,并作为变量在其它语句中使用
在c盘下有个load.txt文件,内有一行文字(路径):
d:\test\path\mytool

要求如下:
1. 用批处理读取这行文字取得路径,并赋值给某个变量
2.格式化C盘(此时load文件也没了)
3.运行刚才所读取路径下的某个文件

具体例子如下:

在A盘有个autoexec.bat文件,其内容中下
----------------------------------------------------------------
@ECHO OFF
smartdrv.exe

call c:\load.bat
Rem load.bat存放于c盘,其内容是路径设置,如 path=d:\test\path\mytool
Rem 这个路径是随机生成的位置不是固定

format c: /q/s/autotest

call set.bat
Rem set.bat就存放于d:\test\path\mytool之下

-----------------------------------------------------------------

问题是最后一步call set.bat执行时总提示错误的命令或文件不存在,可是
我以已设置路径了呀?


另外是我用!cd!来获取当前路径,这个路径可能包含长文件名或目录,一旦
到DOS下,这个路径将不能用,有什么办法可以把获取的路径直接转成以8.3
的形式?

[ Last edited by emote on 2007-5-27 at 09:39 PM ]
第2楼 lxmxn 发表于 2007-05-27 21:24
版主 发帖 4,938 积分 11,386


[ Last edited by lxmxn on 2007-5-27 at 10:09 PM ]
第3楼 emote 发表于 2007-05-27 21:58
初级用户 发帖 41 积分 114
如果我是调用路径下的一个批处理,那么最后一行该怎么改

start "%dpath%.\urfiletoexec" ?


另外一个问题是我用!cd!来获取当前路径, 以便调用该路径下的文件; 可是在Windows下所获取的这个路径可能包含长名目录或者目录中间有空格什么,一旦
到DOS下,这个路径将不能用,有什么办法可以把获取的路径直接转成以8.3
的形式?
第4楼 lxmxn 发表于 2007-05-27 22:12
版主 发帖 4,938 积分 11,386
你是要在DOS下面来运行?

这个恐怕不行,DOS下面很多cmd的扩展都没有。

[ Last edited by lxmxn on 2007-5-28 at 08:14 PM ]
第5楼 emote 发表于 2007-05-28 07:38
初级用户 发帖 41 积分 114
我的思路是先在windows下用!cd!获取xp安装文件所在路径,并把这个路径输出到
c:\load.txt中保存;之后系统开始自动重启进入DOS模式,并调用load.txt根据里面的信息设置XP安装文件的path(当前路径是A盘);设置完成后C盘就会自动格式化;格式化完后要自动调用xp安装文件夹下的一个批处理文件开始xp安装.


我原本在a盘的autoexec.bat文件里设置如下的批处理:

----------------------------------------------------------------
@ECHO OFF
smartdrv.exe

call c:\load.bat
Rem load.bat中保存着xp安装文件的路径信息,内容为path=*****
format c: /q/s/autotest

call set.bat
Rem set.bat就是所设置路径下面的一个批处理文件(当前盘是A盘)

-----------------------------------------------------------------

但提示找不到set.bat

还有一个上述的文件或目录名可能太长的问题是不是只要在DOS中增加长文件名支持的相关程序就行?

[ Last edited by emote on 2007-5-28 at 07:45 AM ]
第6楼 emote 发表于 2007-05-28 19:15
初级用户 发帖 41 积分 114
版主和各位大侠帮帮忙啊,最好能给个较完整的代码,我刚学批处理讲的太简单怕我看不明白。先先谢过了!
第7楼 lxmxn 发表于 2007-05-28 21:50
版主 发帖 4,938 积分 11,386
在DOS下面读取文件的内容还不是很熟悉具体的操作,有时间试试。

对于DOS中支持长文件名,可以用DOSLFN,在论坛搜索一下。
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023