标题: [文件操作] 批量改名的BAT脚本求调整 [打印本页]
作者: qd2024 时间: 2022-9-12 07:11 标题: 批量改名的BAT脚本求调整
下面这4行代码能实现文件批量改名,但是 如果后列中有空格,则空格后面的部分不会被写到新名中,求调整 谢谢- @echo off&color f1&title 改文件名
- for /f "tokens=1,2" %%i in ('more +4 "%~0"')do (
- if exist "%%i.*" ren "%%i.*" "%%j.*")
- echo.改名结束&ping 127.1>nul&exit -
-
-
- A135 A135_snake
- A136 A136_neck
- A137 A137_thin
- A138 A138_danger
- A139 A139_in danger
- A140 A140_at last
- A141 A141_interested
- A142 A142_allow
- A143 A143_think of
复制代码
作者: qd2024 时间: 2022-9-12 08:06
我找了 没有找到 ren 支持空格的方法。
作者: hlzj88 时间: 2022-9-12 08:43
楼主的问题描述不清,问 是从文件,还是从文本获取文件名,怎么匹配。改名前后的对比,依据什么样的规则改名。文件后缀是什么?
作者: qd2024 时间: 2022-9-12 09:24
回复 3# hlzj88
谢谢
当前目录下有若干文件
文件名如 A135 136 137…… 这个列是在EXCLE是做的
EXCEL 第1列是文件夹中的文件名 第二列是 目标文件名
在EXCEL中处理好2列内容后
粘贴到BAT的 第5行之下 运行可以改名
目前的问题是 现有代码 不支持空格 比如A139 运行代码后,目标是改为A139_in danger,但现有代码改成的是 A139_in
不考虑扩展名
辛苦 谢谢
作者: hfxiang 时间: 2022-9-12 09:46
回复 1# qd2024
试试把
for /f "tokens=1,2" %%i in ('more +4 "%~0"') do
改为
for /f "tokens=1*" %%i in ('more +4 "%~0"') do
作者: hlzj88 时间: 2022-9-12 10:10
回复 5# hfxiang
妙,原理不明白,可否解答?
作者: hfxiang 时间: 2022-9-12 10:24
回复 6# hlzj88
请查看for帮助:
for /?
...
...
tokens=x,y,m-n - 指每行的哪一个符号被传递到每个迭代
的 for 本身。这会导致额外变量名称的分配。m-n
格式为一个范围。通过 nth 符号指定 mth。如果
符号字符串中的最后一个字符星号,
那么额外的变量将在最后一个符号解析之后
分配并接受行的保留文本。
...
...
作者: hlzj88 时间: 2022-9-12 11:02
回复 7# hfxiang
谢谢,忘了。
作者: qd2024 时间: 2022-9-12 19:31
回复 5# hfxiang
成功 谢谢
作者: Batcher 时间: 2022-9-13 14:38
回复 4# qd2024
Excel第二列的目标文件名是经过怎样的处理得到的呢?
请说说具体规律,也许可以全部使用BAT脚本实现。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |