Board logo

标题: [文件操作] 【已解决】 求助批处理搜索指定文件夹下的文件并重命名 [打印本页]

作者: 96321478    时间: 2022-4-1 10:27     标题: 【已解决】 求助批处理搜索指定文件夹下的文件并重命名

本帖最后由 96321478 于 2022-4-2 13:05 编辑

在C:\Users  或 D:\Users  下搜索  desktop\AA BB.exe     并重命名为CCDD.exe


参考了一下 http://bbs.bathome.net/thread-3465-1-1.html  中的方案五,没成功,,没看到任何结果
已解决,,参考10楼和8楼  
作者: qixiaobin0715    时间: 2022-4-1 11:00

  1. @echo off
  2. cd/d "%homepath%\desktop"
  3. for /f "delims=" %%a in ('dir /b /a-d "AA BB.exe"') do (
  4.     ren "%%a" "CCDD.exe"
  5. )
  6. pause
复制代码

作者: Batcher    时间: 2022-4-1 11:15

回复 1# 96321478
  1. @echo off
  2. if exist "C:\Users" (
  3.     cd /d "C:\Users"
  4. ) else if exist "D:\Users" (
  5.     cd /d "D:\Users"
  6. ) else (
  7.     echo 找不到Users文件夹
  8.     goto :End
  9. )
  10. for /f "delims=" %%i in ('dir /b /s /a-d ^| findstr /i /c:"Desktop\AA BB.exe"') do (
  11.     ren "%%i" "CCDD.exe"
  12. )
  13. :End
  14. pause
复制代码

作者: 96321478    时间: 2022-4-1 12:20

回复 2# qixiaobin0715

你好,变量提示找不到路径,我是7x64系统
另外users可能在C 也可能在D,,变量好像不可行
作者: 96321478    时间: 2022-4-1 12:30

本帖最后由 96321478 于 2022-4-1 12:33 编辑

回复 3# Batcher


   你好,,已测试,当存在C:\users\    而其中不存在 \desktop\AA BB.exe 时   并不会继续判断D:\users\
不知道是否可以象你那个全盘搜索帖子中方案五那样,用FOR 进行搜索,查找到后再改名
C:\users\   中查找 \desktop\AA BB.exe
   D:\users\   中查找 \desktop\AA BB.exe
   E:\users\  中查找 \desktop\AA BB.exe
作者: 96321478    时间: 2022-4-1 13:04

回复 2# qixiaobin0715

我的是win7-64 单独cd /d "%homepath%  也会提示找不到路径

用 %USERPROFILE% 可以正常跳转
作者: qixiaobin0715    时间: 2022-4-1 13:18

回复 6# 96321478
系统变量平常用的少,想错了。%USERPROFILE%能用就行。
作者: Batcher    时间: 2022-4-1 13:32

回复 5# 96321478
  1. @echo off
  2. if exist "C:\Users" (
  3.     call :Search "C:\Users"
  4. ) else if exist "D:\Users" (
  5.     call :Search "D:\Users"
  6. ) else (
  7.     echo 找不到Users文件夹
  8. )
  9. pause
  10. goto :eof
  11. :Search
  12. for /f "delims=" %%i in ('dir /b /s /a-d %1 ^| findstr /i /c:"Desktop\AA BB.exe"') do (
  13.     ren "%%i" "CCDD.exe"
  14. )
复制代码

作者: 96321478    时间: 2022-4-2 11:27

回复 8# Batcher


   你好 ,测试结果跟5楼一样。。网上找到个类似代码,修改了一下,基本可以实现想要的想法,,有个缺点就是,当desktop的子目录中也存在AA BB.EXE时,也给重命名了,,不知道怎么解决

set SrcDir=c:\users,d:\users,E:\users
for %%i in (%SrcDir%) do (
    for /f "delims=" %%y in ('dir /a-d /s /b "%%~i\desktopo\AA BB.exe"') do (
        ren "%%y" "CCDD.exe"
    )
)
作者: qixiaobin0715    时间: 2022-4-2 11:35

按8楼的代码修改一下不就行了:
  1. dir /a-d /s /b "%%~i\desktopo\AA BB.exe" ^| findstr /i /c:"Desktop\AA BB.exe"
复制代码

作者: 96321478    时间: 2022-4-2 13:03

回复 10# qixiaobin0715


   OK了 ,按你和Batcher 的思路,,完美实现
感谢二位热心帮助,,

结帖。




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2