标题: [文件操作] 批量修改文件名的批处理求解释 [打印本页]
作者: CYUYAN09 时间: 2014-12-13 13:10 标题: 批量修改文件名的批处理求解释
a.txt 中的内容是
123 abc
234 bcd
pause- @echo off
-
- for /f "tokens=1,2" %%i in (a.txt) do (
-
- for /f "delims=_ tokens=1,2" %%p in ('dir /a-d /b *.bmp *.csv') do (
-
- if "%%p" == "%%i" ren %%i_%%q %%j_%%q
-
- )
-
- )
-
- pause
复制代码
这个这个批量修改文件名称的代码。但是其中的几个地方我不是很明白,求大神的解释。
《1》 "tokens=1,2“这个不是把a.txt中的内容都显示吗?为什么只显示123,234?
《2》 %%q 和%%j是什么啊?哪里来的变量啊?
作者: terse 时间: 2014-12-13 15:57
《1》这里 %%i 是123 234 %%j 是 abc bcd
《2》 如果文件名包含_ %%p 就是是文件名里 _ 前面的 _后面就是 %%q
作者: c755731262 时间: 2014-12-13 17:10
1,本来是要显示所有的内容,tokens=1,2要求它后面必须有两个变量来对应
如for /f "tokens=1,2" %%i in (a.txt) do echo %%b %%c %%ib,%%c和前面的1 2要对应,
如果你只用一个变量echo %%a,那么只显示第一列内容
2,%%q %%j都是从for后面的变量按照字母表顺序开始排列的
作者: CYUYAN09 时间: 2014-12-14 09:49
回复 3# c755731262
非常感谢。明白了。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |