找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 24088|回复: 9

[文件操作] 批量改名的BAT脚本求调整

[复制链接]
发表于 2022-9-12 07:11:47 | 显示全部楼层 |阅读模式
下面这4行代码能实现文件批量改名,但是 如果后列中有空格,则空格后面的部分不会被写到新名中,求调整 谢谢
  1. @echo off&color f1&title 改文件名
  2. for /f "tokens=1,2" %%i in ('more +4 "%~0"')do (
  3. if exist "%%i.*" ren "%%i.*" "%%j.*")
  4. echo.改名结束&ping 127.1>nul&exit -


  5. A135         A135_snake
  6. A136        A136_neck
  7. A137        A137_thin
  8. A138        A138_danger
  9. A139        A139_in danger
  10. A140        A140_at last
  11. A141        A141_interested
  12. A142        A142_allow
  13. A143        A143_think of
复制代码
 楼主| 发表于 2022-9-12 08:06:55 | 显示全部楼层
我找了 没有找到 ren 支持空格的方法。
发表于 2022-9-12 08:43:45 | 显示全部楼层
楼主的问题描述不清,问 是从文件,还是从文本获取文件名,怎么匹配。改名前后的对比,依据什么样的规则改名。文件后缀是什么?
 楼主| 发表于 2022-9-12 09:24:37 | 显示全部楼层
回复 3# hlzj88


    谢谢

当前目录下有若干文件

文件名如 A135 136 137……  这个列是在EXCLE是做的   
EXCEL 第1列是文件夹中的文件名  第二列是 目标文件名
在EXCEL中处理好2列内容后 
粘贴到BAT的 第5行之下 运行可以改名


目前的问题是 现有代码 不支持空格   比如A139 运行代码后,目标是改为A139_in danger,但现有代码改成的是 A139_in


不考虑扩展名


辛苦 谢谢
发表于 2022-9-12 09:46:41 | 显示全部楼层
回复 1# qd2024


   
试试把
for /f "tokens=1,2" %%i in ('more +4 "%~0"') do
改为
for /f "tokens=1*" %%i in ('more +4 "%~0"') do
发表于 2022-9-12 10:10:55 | 显示全部楼层
回复 5# hfxiang
妙,原理不明白,可否解答?
发表于 2022-9-12 10:24:28 | 显示全部楼层
回复 6# hlzj88


   
请查看for帮助:
for /?
...
...
        tokens=x,y,m-n  - 指每行的哪一个符号被传递到每个迭代
                          的 for 本身。这会导致额外变量名称的分配。m-n
                          格式为一个范围。通过 nth 符号指定 mth。如果
                          符号字符串中的最后一个字符星号,
                          那么额外的变量将在最后一个符号解析之后
                          分配并接受行的保留文本。

...
...
发表于 2022-9-12 11:02:45 | 显示全部楼层
回复 7# hfxiang

谢谢,忘了。
 楼主| 发表于 2022-9-12 19:31:04 | 显示全部楼层
回复 5# hfxiang


    成功  谢谢
发表于 2022-9-13 14:38:51 | 显示全部楼层
回复 4# qd2024


Excel第二列的目标文件名是经过怎样的处理得到的呢?
请说说具体规律,也许可以全部使用BAT脚本实现。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 17:00 , Processed in 0.016035 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表