中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何读取txt文件中的路径,并作为变量在其它语句中使用
作者:
标题: 如何读取txt文件中的路径,并作为变量在其它语句中使用 上一主题 | 下一主题
emote
初级用户





积分 114
发帖 41
注册 2006-10-13
状态 离线
『楼 主』:  如何读取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 ]

2007-5-27 21:10
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 2 楼』:  


@echo off
set /p dpath=<c:\load.txt
format /q c:
start "" "%dpath%.\urfiletoexec"
[ Last edited by lxmxn on 2007-5-27 at 10:09 PM ]

2007-5-27 21:24
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
emote
初级用户





积分 114
发帖 41
注册 2006-10-13
状态 离线
『第 3 楼』:  

如果我是调用路径下的一个批处理,那么最后一行该怎么改

start "%dpath%.\urfiletoexec" ?


另外一个问题是我用!cd!来获取当前路径, 以便调用该路径下的文件; 可是在Windows下所获取的这个路径可能包含长名目录或者目录中间有空格什么,一旦
到DOS下,这个路径将不能用,有什么办法可以把获取的路径直接转成以8.3
的形式?

2007-5-27 21:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 4 楼』:  

你是要在DOS下面来运行?

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

[ Last edited by lxmxn on 2007-5-28 at 08:14 PM ]

2007-5-27 22:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
emote
初级用户





积分 114
发帖 41
注册 2006-10-13
状态 离线
『第 5 楼』:  

我的思路是先在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 ]

2007-5-28 07:38
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
emote
初级用户





积分 114
发帖 41
注册 2006-10-13
状态 离线
『第 6 楼』:  

版主和各位大侠帮帮忙啊,最好能给个较完整的代码,我刚学批处理讲的太简单怕我看不明白。先先谢过了!

2007-5-28 19:15
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 7 楼』:  

在DOS下面读取文件的内容还不是很熟悉具体的操作,有时间试试。

对于DOS中支持长文件名,可以用DOSLFN,在论坛搜索一下。

2007-5-28 21:50
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: