windows 编写批处理文件以重命名多个文件夹中的文件

wz1wpwve  于 2023-11-21  发布在  Windows
关注(0)|答案(3)|浏览(167)

我正试图写一个批处理文件,以重命名许多文件与一个#签署的文件名被替换为No.
*#*.**No.*.*示例是GT #3.docGT No. 3.doc所有文件具有不同的文件扩展名.即.txt.doc.docx.xls.dat.mdb,等等.
此外,这些文件不是在一个文件夹中,而是在许多文件夹和子文件夹中。
操作系统是Win 7.我期待着帮助,因为我是一个新手与批处理文件,有数百个文件要重命名移动到一个云解决方案,不接受符号.谢谢.

yvgpqqbh

yvgpqqbh1#

几年前,自从powershell出现后,我就忘记了如何使用批处理。Powershell有一个简单的方法来做到这一点。

  1. $target = "Your Path"
  2. Get-ChildItem -path $target -Recurse -Include *#* | rename-item -NewName { $_.name -replace '#','NO'}

字符串
-recurse将遍历所有文件夹,-include将过滤带有#的文件,并将其传递给rename-item。Rename-item有一个replace函数,它只会将指定的部分替换为您想要的任何部分。

gev0vcfq

gev0vcfq2#

batch-file应该这样做:

  1. @echo off
  2. setlocal EnableExtensions DisableDelayedExpansion
  3. rem // Define constants here:
  4. set "ROOT=D:\path\to\root\folder\"
  5. set "PATTERN=*#*.*"
  6. set "SEARCH=#"
  7. set "REPLAC=No. "
  8. for /R "%ROOT%" %%I in ("%PATTERN%") do (
  9. set "FILENAME=%%~nI"
  10. setlocal EnableDelayedExpansion
  11. set "FILENAME=!FILENAME:%SEARCH%=%REPLAC%!"
  12. ren "%%~fI" "!FILENAME!%~xI"
  13. endlocal
  14. )
  15. endlocal
  16. exit /B

字符串

展开查看全部
yfjy0ee7

yfjy0ee73#

Thanks aschipfl:)
你是说像这样吗

  1. @echo off
  2. setlocal EnableExtensions DisableDelayedExpansion
  3. rem // Define constants here:
  4. set "ROOT=D:\path\to\root\folder\"
  5. set "PATTERN=version.exe"
  6. set "SEARCH=version"
  7. set "REPLAC=v"
  8. for /R "%ROOT%" %%I in ("%PATTERN%") do (
  9. set "FILENAME=%%~nI"
  10. setlocal EnableDelayedExpansion
  11. set "FILENAME=!FILENAME:%SEARCH%=%REPLAC%!"
  12. ren "%%~fI" "!FILENAME!%~xI"
  13. endlocal
  14. )
  15. endlocal
  16. exit /B

字符串
并重命名也所有文件夹和所有嵌套的文件夹包含“版本”改为“v”?

展开查看全部

相关问题