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

[文件操作] 批处理重命名的时候,系统总是提示找不到指定文件,求解

各位大神好,在用批处理重命名一个路径下的文件的时候,它会遍历该路径下的所有文件。但是总是提示系统找不到指定文件。但是运行后,文件都已经被成功执行了重命名。
请问代码如何修改,能让这个错误提示消失呢?

代码如下:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for  %%x in (*) do (
  4.     if not "%%x"=="demo.bat" (
  5.         set /a sum+=1
  6.         rename "*.7z" "*.yw"
  7. )
  8. )
  9. pause
复制代码

只是打了个比喻。
黑雨伞:功能比较单一,主要是遮雨,当然也能遮阳,效果就差点。
花雨伞:用途非常广。遮雨;遮阳的效果好,可反射阳光;美观,姑娘们喜欢用,起到装饰作用;.....
写代码也一样。楼主已经养成了rename命令后面加引号的好习惯,不影响代码的美观和效率,为什么非要将别人的好习惯改掉呢?

TOP

回复 4# qixiaobin0715


    什么意思
梦依旧在,只是,心有余而力渐有不足
年年岁岁花相似,岁岁年年人不同

TOP

黑雨伞,花雨伞

TOP

回复  blueskyforme
有提示很正常:
1.if语句在这里没有什么作用,因为后面的重命名命令已经指定是修改扩 ...
qixiaobin0715 发表于 2021-8-28 08:59

    最简单的命令是:
  1. ren *.7z *.yw
复制代码
梦依旧在,只是,心有余而力渐有不足
年年岁岁花相似,岁岁年年人不同

TOP

本帖最后由 qixiaobin0715 于 2021-8-28 09:01 编辑

回复 1# blueskyforme
有提示很正常:
1.if语句在这里没有什么作用,因为后面的重命名命令已经指定是修改扩展名为7z的文件,去掉也不会修改demo.bat。
2.第一次循环后就修改了所有指定的文件,所以接下来再循环时会有提示找不到指定文件(指定文件已经被修改)。
3.不用判断语句,不要用循环,也不要变量延迟,只保留一句即可:
rename "*.7z" "*.yw"

TOP

返回列表