中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]for命令中如何设置变量
作者:
标题: [求助]for命令中如何设置变量 上一主题 | 下一主题
cqcswky
新手上路





积分 5
发帖 4
注册 2009-3-16
状态 离线
『楼 主』:  [求助]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 ]

2009-3-18 04:49
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




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

for /f %%a in (H:\Updater5\name.txt) do ( awxConvert %%a new_%%a 1)

这样?

2009-3-18 06:57
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
netbenton
银牌会员

批处理编程迷


积分 1916
发帖 752
注册 2008-12-28
来自 广西
状态 离线
『第 3 楼』:  

for /f %%a in (H:\Updater5\name.txt) do ( awxConvert %%a %%~na.000 1)



精简
[你的+我的+他的]=>[大家的]    个人网志   
2009-3-18 08:11
查看资料  发送邮件  发短消息 网志  OICQ (37659560)  编辑帖子  回复  引用回复
yishanju
银牌会员

[b]看你妹啊[/b]


积分 1488
发帖 1357
注册 2006-5-20
状态 离线
『第 4 楼』:  

变量延时
多看新手教程




有问题请发论坛或者自行搜索,再短消息问我的统统是SB
2009-3-18 09:36
查看资料  发短消息 网志   编辑帖子  回复  引用回复
cqcswky
新手上路





积分 5
发帖 4
注册 2009-3-16
状态 离线
『第 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 ]

2009-3-18 10:04
查看资料  发短消息 网志   编辑帖子  回复  引用回复
cqcswky
新手上路





积分 5
发帖 4
注册 2009-3-16
状态 离线
『第 6 楼』:  

发完回复才看到yishanju的建议

yishanju高手提到的变量延时,

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

2009-3-18 10:16
查看资料  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: