• Ukieweb

    佳的博客

    曾梦想仗剑天涯,后来工作忙没去。

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 防在此目录下

1.jpg

2. 运行 rename.bat 会将本目录下的 文件/目录 名字导入到  rename.csv 文件。先不要输入 Y 执行重命名

2.jpg

3. 请打开 rename.csv ,对应 输入 要命名的 新名字

3.jpg

4. 更改 rename.csv 后,输入 Y 执行重命名

4.jpg

5. 更改完后,查看效果

5.jpg


0
0
下一篇:NFS 挂载的客户端缓存以及如何使用 noac 选项

0 条评论

老佳啊

85后,大专学历,中原人士,家里没矿。

由于年轻时长的比较帅气,导致在别人眼里,我一直不谈恋爱的原因是清高,实则是自己的小自卑。最大的人生目标就是找一个相知相爱相容的人,共度余生。

和人相处时如果能感受到真诚,会非常注重彼此的关系,对别人没有什么心机,即使有利益冲突,一般也会以和为贵,因为在这个世界上,物质的东西,从来不会吸引到我。

特别迷恋那些大山大水,如果现在还能隐居,可能早就去了。对那些宏伟的有底蕴的人文景观比较不感冒。

从事于IT行业,却一直对厨房念念不忘,由于身材魁梧,总觉得自己上辈子是个将军,可惜这辈子没当兵,也不会打架。