我对编程非常陌生,非常感谢您的帮助!
我有一个顶层目录,其中包含子文件夹,这些子文件夹中有文件。如果子文件夹包含少于4个或大于4个文件,我想在文件夹名称后添加字符串“ x”,例如foldername-> foldernamex 。我该怎么做呢?
到目前为止,这是我的尝试:
for %%e in ('dir ^| find "File(s)"') do (
set cnt=%%e echo File count = %cnt%
if File count <4 do ren "%%e" "%%~nxf_x"
)
这将dir
命令和简短/b
开关与仅文件开关一起使用,/a-d
并将结果通过find /c /v ""
命令传递给命令以计算文件数。
findstr
用于查找确切的数字4
,如果未检测到确切的数字,则4
脚本将重命名文件夹并重新启动循环以处理嵌套的子目录(因为重命名文件夹时文件夹结构会更改)。
它未经测试-因此请先在带有某些文件夹副本的示例文件夹树上对其进行测试。
@echo off
:loop
for /f "delims=" %%a in ('dir /b /s /ad ^|findstr /v /i "x$" ') do (
dir "%%a" /b /a-d 2>nul |find /c /v "" |findstr "^4$" >nul || (ren "%%a" "%%~nxax" & goto :loop)
)
pause
仅处理当前文件夹内的文件夹的简单代码。
@echo off
for /f "delims=" %%a in ('dir /b /s /ad ') do (
dir "%%a" /b /a-d 2>nul |find /c /v "" |findstr "^4$" >nul || ren "%%a" "%%~nxax"
)
pause
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句