中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-11 13:43
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]for命令中如何设置变量 查看 838 回复 5
楼 主 [求助]for命令中如何设置变量 发表于 2009-03-18 04:49 ·  中国 福建 福州 电信
新手上路
积分 5
发帖 4
注册 2009-03-16 11:01
17年会员
UID 141458
性别 男
状态 离线
我要用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 发表于 2009-03-18 06:57 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线
for /f %%a in (H:\Updater5\name.txt) do ( awxConvert %%a new_%%a 1)

这样?
3 发表于 2009-03-18 08:11 ·  中国 广东 东莞 电信
银牌会员
★★★
批处理编程迷
积分 1,916
发帖 752
注册 2008-12-28 04:30
17年会员
UID 135147
性别 男
来自 广西
状态 离线
for /f %%a in (H:\Updater5\name.txt) do ( awxConvert %%a %%~na.000 1)
精简
=> 个人网志
4 发表于 2009-03-18 09:36 ·  中国 北京 联通
银牌会员
★★★★
[b]看你妹啊[/b]
积分 1,488
发帖 1,357
注册 2006-05-20 12:00
20年会员
UID 55770
状态 离线
变量延时
多看新手教程

有问题请发论坛或者自行搜索,再短消息问我的统统是SB
5 发表于 2009-03-18 10:04 ·  中国 福建 福州 电信
新手上路
积分 5
发帖 4
注册 2009-03-16 11:01
17年会员
UID 141458
性别 男
状态 离线
先感谢楼上两位的热心帮助!

由于解码文件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 发表于 2009-03-18 10:16 ·  中国 福建 福州 电信
新手上路
积分 5
发帖 4
注册 2009-03-16 11:01
17年会员
UID 141458
性别 男
状态 离线
发完回复才看到yishanju的建议

yishanju高手提到的变量延时,

我不知道怎么对变量延时的变量 再按上面的要求进行 字符串 提取和变化?
论坛跳转: