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

[文本处理] [已解决]批处理批量更改文件名中命令语法不正确? 哪错了?

[复制链接]
发表于 2011-10-22 21:49:23 | 显示全部楼层 |阅读模式
  1. @echo off
  2. set extension=.rar
  3. set /a sum=0
  4. for %%m in (*) do (
  5.         if not "%%m"=="batchrename.bat" (
  6.                 ren %%m %%m%extension%
  7.                 set /a sum=sum+1
  8.         )
  9. )
  10. echo 一共%sum%个文件被改名!
  11. set sum=
  12. set extension=
  13. pause
复制代码
因为出现命令语法不正确,故去掉@echo off 但结果还是显示
E:\TEST-2\案例21批量更改文件名>set extension=.rar

E:\TEST-2\案例21批量更改文件名>set /a sum=0

E:\TEST-2\案例21批量更改文件名>for %m in (*) do (if not "%m" == "batchrename.ba
" (
ren %m %m.rar
set /a sum=sum+1
) )

E:\TEST-2\案例21批量更改文件名>(if not "batchrename.bat" == "batchrename.bat" (
ren batchrename.bat batchrename.bat.rar
set /a sum=sum+1
) )

E:\TEST-2\案例21批量更改文件名>(if not "新建 Microsoft Office Word 文档" == "ba
chrename.bat" (
ren 新建 Microsoft Office Word 文档 新建 Microsoft Office Word 文档.rar
set /a sum=sum+1
) )
命令语法不正确。

E:\TEST-2\案例21批量更改文件名>(if not "新建 好压 7Z 压缩文件" == "batchrename.
at" (
ren 新建 好压 7Z 压缩文件 新建 好压 7Z 压缩文件.rar
set /a sum=sum+1
) )
命令语法不正确。

E:\TEST-2\案例21批量更改文件名>(if not "新建 好压 ZIP 压缩文件" == "batchrename
bat" (
ren 新建 好压 ZIP 压缩文件 新建 好压 ZIP 压缩文件.rar
set /a sum=sum+1
) )
命令语法不正确。

E:\TEST-2\案例21批量更改文件名>(if not "新建 好压 ZIP 压缩文件.zip" == "batchre
ame.bat" (
ren 新建 好压 ZIP 压缩文件.zip 新建 好压 ZIP 压缩文件.zip.rar
set /a sum=sum+1
) )
命令语法不正确。

E:\TEST-2\案例21批量更改文件名>(if not "新建 文本文档" == "batchrename.bat" (
ren 新建 文本文档 新建 文本文档.rar
set /a sum=sum+1
) )
命令语法不正确。

E:\TEST-2\案例21批量更改文件名>(if not "新建 文本文档.txt" == "batchrename.bat"
(
ren 新建 文本文档.txt 新建 文本文档.txt.rar
set /a sum=sum+1
) )
命令语法不正确。

E:\TEST-2\案例21批量更改文件名>echo 一共6个文件被改名!
一共6个文件被改名!

E:\TEST-2\案例21批量更改文件名>set sum=

E:\TEST-2\案例21批量更改文件名>set extension=

E:\TEST-2\案例21批量更改文件名>pause
请按任意键继续. . .

请问这个不正确 不正确在哪了?

评分

参与人数 1PB +2 收起 理由
CrLf + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2011-10-22 21:54:04 | 显示全部楼层
有空格的文件名需要用双引号括起来,ren "%%m" "%%m%extension%"
 楼主| 发表于 2011-10-22 21:56:31 | 显示全部楼层
由bat-weichenxiehou指点 在ren出错 要考虑到文件名本身有空格 故ren "%%m" "%%m%extension%"
 楼主| 发表于 2011-10-22 23:00:56 | 显示全部楼层
  1. @echo off
  2. echo 开始更改文件名……
  3. set extension=.cpp
  4. set/a sum=0
  5. for %%m in (*) do (
  6. if /i not "%%~nxm"=="%~nx0" (
  7. if /i not "%%~xm"=="%extension%" (
  8. ren "%%m" "%%~nm%extension%"
  9. set /a sum=sum+1
  10. )
  11. )
  12. )
  13. echo 文件改名完毕,一共有%sum%个文件被改名!
  14. set sum=
  15. set extension=
复制代码
相比较而言, 这个比较好些!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 04:32 , Processed in 0.019242 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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