中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-11 14:47
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » [求助]for命令中如何设置变量
可打印版本  839 / 5
第1楼 cqcswky 发表于 2009-03-18 04:49
新手上路 发帖 4 积分 5
[求助]for命令中如何设置变量
我要用for命令解码文件
用的是如下命令
for /f %%a in (H:\Updater5\name.txt) do ( awxConvert %%a %%a 1)

其中H:\Updater5\name.txt 存放的是要解码的文件名,内容如下

h:\Updater5\FY2C_TBB\FY2C_TBB_IR1_OTG_20060301_0000.AWX
h:\Updater5\FY2C_TBB\FY2C_TBB_IR1_OTG_20060301_0100.AWX
h:\Updater5\FY2C_TBB\FY2C_TBB_IR1_OTG_20060301_0200.AWX

awxConvert是解码文件,最后的1是参数

用我上面的命令,解码出来的结果由于与源文件同名,会覆盖源文件。

我是想把它们重命名为0603010000.000,0603010100.000,0603010200.000。

请问我如何在do循环中设置变量,可以使产生的文件与源文件不同名呢?

而set命令,好像在for循环中,没法对变量%%a进行字符串提取,该怎么作啊?

[ Last edited by cqcswky on 2009-3-18 at 04:50 ]
第2楼 lxmxn 发表于 2009-03-18 06:57
版主 发帖 4,938 积分 11,386
for /f %%a in (H:\Updater5\name.txt) do ( awxConvert %%a new_%%a 1)

这样?
第3楼 netbenton 发表于 2009-03-18 08:11
银牌会员 发帖 752 积分 1,916 来自 广西
for /f %%a in (H:\Updater5\name.txt) do ( awxConvert %%a %%~na.000 1)
第4楼 yishanju 发表于 2009-03-18 09:36
银牌会员 发帖 1,357 积分 1,488
变量延时
多看新手教程
第5楼 cqcswky 发表于 2009-03-18 10:04
新手上路 发帖 4 积分 5
先感谢楼上两位的热心帮助!

由于解码文件awxConvert 要求:

“awxConvert 源文件名(包含路径) 结果文件名(不含路径时,结果文件位于awxConvert.exe文件夹下) 1”

因此,lxmxn高手的命令不行,这是我没说清楚的原因,与你无关!

netbenton高手的方法:
for /f %%a in (H:\Updater5\name.txt) do ( awxConvert %%a %%~na.000 1)
可行,达到了改后缀的目的。

但我还想请教高手们一下:由于实际的 *.AWX 文件很多,结果文件名也是有要求的。我是想在for循环中,设置变量,让它等于每一个%%a(源文件名),(H:\Updater5\name.txt存放的是每一个*.AWX文件的源文件名-包含路径),

但是用set命令,如 set b=%%a,再想把 字符串 b(如%%a 的某一个值是h:\Updater5\FY2C_TBB\FY2C_TBB_IR1_OTG_20060301_0200.AWX)
变成—— h:\Updater5\FY2C_TBB\0603010200.000,作为目标文件的路径加名称。但好像在for循环中,set命令不起作用,该怎么办?

[ Last edited by cqcswky on 2009-3-18 at 10:20 ]
第6楼 cqcswky 发表于 2009-03-18 10:16
新手上路 发帖 4 积分 5
发完回复才看到yishanju的建议

yishanju高手提到的变量延时,

我不知道怎么对变量延时的变量 再按上面的要求进行 字符串 提取和变化?
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023