|
mailnler
新手上路
积分 14
发帖 8
注册 2006-11-19
状态 离线
|
『楼 主』:
高手过来!关于变量的问题!
@echo off
cls
echo 请稍等正在读取ID电影对应表.....
FOR /f "tokens=1,2 delims=," %%i in ('type 全部ID电影对应表.ini ^| find /i ","') do set %%i=%%j
cls
FOR /f %%i in ('type 批量改名目录.ini') do (
FOR /f %%I in ('dir /b %%i') do (
IF DEFINED %%I echo 正在处理文件:%%i%%I %I% && pause
)
)
关于最上面的for 设置的为%%i 的变量怎么取%%j值的
全部ID电影对应表中有:
17097,黑暗物质之黄金罗盘
14732,伊拉克碎片
56192,秘密的阴谋
56184,头号公敌
也就是设置了17097为变量 值为:黑暗物质之黄金罗盘
可我不知道怎么才能取到%17097%的值!!!批处理里输出时出错!
IF DEFINED %%I echo 正在处理文件:%%i%%I %I% && pause
这一句我会改成我想做的事!
[ Last edited by mailnler on 2010-5-29 at 22:59 ]
|
|
2010-5-29 22:45 |
|
|
mailnler
新手上路
积分 14
发帖 8
注册 2006-11-19
状态 离线
|
『第
2 楼』:
现在运行后输出的是:
正在处理文件:D:\TEST\17097
请按任意键继续. . .
想要输出的是:
正在处理文件:D:\TEST\17097 黑暗物质之黄金罗盘
请按任意键继续. . .
|
|
2010-5-30 00:09 |
|
|
Hanyeguxing
银牌会员
正在学习中的菜鸟...
积分 1039
发帖 897
注册 2009-3-1 来自 在地狱中仰望天堂
状态 离线
|
『第
3 楼』:
Quote: | Originally posted by mailnler at 2010-5-29 22:45:
@echo off
cls
echo 请稍等正在读取ID电影对应表.....
FOR /f "tokens=1,2 delims=," %%i in ('type 全部ID电影对应表.ini ^| find /i ","') do set %%i=%%j
cls
FOR /f %%i in ('type 批量改名目录.ini') do (
FOR /f %%I in ('dir /b %%i') do (
IF DEFINED %%I echo 正在处理文件:%%i%%I %I% && pause
)
)
关于最上面的for 设置的为%%i 的变量怎么取%%j值的
全部ID电影对应表中有:
17097,黑暗物质之黄金罗盘
14732,伊拉克碎片
56192,秘密的阴谋
56184,头号公敌
也就是设置了17097为变量 值为:黑暗物质之黄金罗盘
可我不知道怎么才能取到%17097%的值!!!批处理里输出时出错!
IF DEFINED %%I echo 正在处理文件:%%i%%I %I% && pause
这一句我会改成我想做的事! |
|
1,为什么不能说说你要具体做什么呢?
2,如果文本(编码为ansi)中只有相关内容,'type 全部ID电影对应表.ini ^| find /i ","'可以直接写成全部ID电影对应表.ini,'type 批量改名目录.ini'也是如此。
3,这里的find不需要/i参数
4,后面两个for 最好使用"delims="以处理可能存在的空格
5,开启变量延迟setlocal enabledelayedexpansion
如果%%i是变量名,则!%%i!为这个变量的值。
[ Last edited by Hanyeguxing on 2010-5-30 at 01:10 ]
|
批处理之家 http://bbs.bathome.net/forum-5-1.html |
|
2010-5-30 01:05 |
|
|
mailnler
新手上路
积分 14
发帖 8
注册 2006-11-19
状态 离线
|
『第
4 楼』:
@echo off
setlocal enabledelayedexpansion
cls
echo 请稍等正在读取ID电影对应表.....
FOR /f "tokens=1,2 delims=," %%i in ('type 全部ID电影对应表.ini') do set %%i=%%j
cls
FOR /f %%i in ('type 批量改名目录.ini') do (
FOR /f %%I in ('dir /b %%i') do (
IF DEFINED %%I ren %%i%%I !%I%! && pause
)
)
这样还是不行!
全部ID电影对应表中有:
17097,黑暗物质之黄金罗盘
14732,伊拉克碎片
56192,秘密的阴谋
56184,头号公敌
批量改名目录.ini 中有:
D:\TEST
E:\LS
F:\KM
G:\23
要做的事就是查询批量改名目录中存在的 全部ID电影表中的ID的文件夹改名成中文 或是显示成一个文本
|
|
2010-5-30 08:22 |
|
|
mailnler
新手上路
积分 14
发帖 8
注册 2006-11-19
状态 离线
|
『第
5 楼』:
@echo off
setlocal enabledelayedexpansion
cls
echo 请稍等正在读取ID电影对应表.....
FOR /f "tokens=1,2 delims=," %%i in ('type 全部ID电影对应表.ini') do set %%i=%%j
cls
FOR /f %%i in ('type 批量改名目录.ini') do (
FOR /f %%I in ('dir /b %%i') do (
IF DEFINED %%I ren %%i%%I !%%I! && pause
)
)
这样改名是好使的,可是我把IF DEFINED %%I ren %%i%%I !%%I! && pause
改成IF DEFINED %%I echo %%i%%I !%%I! && pause就是不显示后面的中文
|
|
2010-5-30 08:28 |
|