bat 批处理 for 参数之 token 提取列 批量命名目录下文件
1. bat 的 for 语法
FOR /F "skip=n delims=, tokens=x,y,m-n" %%I IN (Command1) DO Command2 例如 for /f "skip=1 delims=, tokens=1,2" %%I in (rename.csv) do ren "%%I" "%%J"
参数
skip=n 这里的 n 指的是跳过开头的n行,并不是说 跳过第n行
delims=, 用分割符号逗号分隔成的列。默认空格
tokens=1,2 提取 1 和 2列
token 的几种类型
tokens=m 表示提取第 m 列。
tokens=m,n 表示提取第 m 列 和 第n列。
tokens=m-n 表示提取第 m 列 至 第 n 列。
Tokens=* 表示删除每行前面的空格。忽略行首的所有空格。
tokens=m* 提取第 m 列以后的所有字符,星号表示剩余的字符。
tokens=m,* 提取第 m 列以后的所有字符,星号表示剩余的字符。
在 FOR 语句中显式声明 %%i。使用 tokens= 隐式声明 %%j 和 %%k。只要不会引起试图声明高于字母“z”或“Z”的某个变量,则使用 tokens= 可以指定最多 26 个输出变量。
2. 示例: 批量修改目录下文件名字
bat 脚本 (rename.bat)
@ECHO off dir *.* /b>rename.csv set /P msg="Is finish your new name in rename.csv (Y/N)?: " if %msg% == Y goto start if %msg% == y goto start if not %msg% == Y goto stop :start for /f "delims=, tokens=1,2" %%I in (rename.csv) do ren "%%I" "%%J" echo "rename finished ! please check !" pause exit :stop echo byebye , exit pause exit
脚本使用
1,譬如我们要 重命名 此目录下文件/目录名字。将 rename.bat 防在此目录下
2. 运行 rename.bat 会将本目录下的 文件/目录 名字导入到 rename.csv 文件。先不要输入 Y 执行重命名
3. 请打开 rename.csv ,对应 输入 要命名的 新名字
4. 更改 rename.csv 后,输入 Y 执行重命名
5. 更改完后,查看效果
共 0 条评论