![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-12 05:28 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 高手过来!关于变量的问题! |
| 可打印版本 854 / 4 |
| 第1楼 mailnler | 发表于 2010-05-29 22:45 |
| 新手上路 发帖 8 积分 14 | |
|
高手过来!关于变量的问题! @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 ] |
|
| 第2楼 mailnler | 发表于 2010-05-30 00:09 |
| 新手上路 发帖 8 积分 14 | |
|
现在运行后输出的是:
正在处理文件:D:\TEST\17097 请按任意键继续. . . 想要输出的是: 正在处理文件:D:\TEST\17097 黑暗物质之黄金罗盘 请按任意键继续. . . |
|
| 第3楼 Hanyeguxing | 发表于 2010-05-30 01:05 |
| 银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂 | |
Originally posted by mailnler at 2010-5-29 22:45: 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 ] |
|
| 第4楼 mailnler | 发表于 2010-05-30 08:22 |
| 新手上路 发帖 8 积分 14 | |
|
@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的文件夹改名成中文 或是显示成一个文本 |
|
| 第5楼 mailnler | 发表于 2010-05-30 08:28 |
| 新手上路 发帖 8 积分 14 | |
|
@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就是不显示后面的中文 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |