[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

下面这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
复制代码

我找了 没有找到 ren 支持空格的方法。

TOP

楼主的问题描述不清,问 是从文件,还是从文本获取文件名,怎么匹配。改名前后的对比,依据什么样的规则改名。文件后缀是什么?
目的,学习批处理

TOP

回复 3# hlzj88


    谢谢

当前目录下有若干文件

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


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


不考虑扩展名


辛苦 谢谢

TOP

回复 1# qd2024


   
试试把
for /f "tokens=1,2" %%i in ('more +4 "%~0"') do
改为
for /f "tokens=1*" %%i in ('more +4 "%~0"') do

TOP

回复 5# hfxiang
妙,原理不明白,可否解答?
目的,学习批处理

TOP

回复 6# hlzj88


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

...
...

TOP

回复 7# hfxiang

谢谢,忘了。
目的,学习批处理

TOP

回复 5# hfxiang


    成功  谢谢

TOP

回复 4# qd2024


Excel第二列的目标文件名是经过怎样的处理得到的呢?
请说说具体规律,也许可以全部使用BAT脚本实现。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表