Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 使用批处理递归重命名给定目录中的文件和文件夹_Batch File_Recursion - Fatal编程技术网

Batch file 使用批处理递归重命名给定目录中的文件和文件夹

Batch file 使用批处理递归重命名给定目录中的文件和文件夹,batch-file,recursion,Batch File,Recursion,我正在尝试递归地将给定目录中的所有文件和文件夹重命名为当前名称的大写版本。潜伏让我走了这么远: @echo off setlocal enableDelayedExpansion pushd F:\ for %%f in (*) do ( set "filename=%%~f" for %%A in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do ( set "filename=!filename:%

我正在尝试递归地将给定目录中的所有文件和文件夹重命名为当前名称的大写版本。潜伏让我走了这么远:

@echo off
setlocal enableDelayedExpansion

pushd F:\

for %%f in (*) do (
   set "filename=%%~f"

   for %%A in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
      set "filename=!filename:%%A=%%A!"
   )
    ren "%%f" "!filename!" >nul 2>&1
)
endlocal
然而,它似乎不是递归工作的。关于如何解决这个问题有什么建议吗

变化

for %%f in (*) do (
   set "filename=%%~f"

它遍历整个树并将
%%f
的名称和扩展名简单地分配给
文件名

注意

for /r "F:\" %%f in (*) do (
将在引用的目录名处开始搜索。

更改

for %%f in (*) do (
   set "filename=%%~f"

它遍历整个树并将
%%f
的名称和扩展名简单地分配给
文件名

注意

for /r "F:\" %%f in (*) do (

将在引用的目录名处开始搜索。

确定,因此整个代码看起来像“@echo off setlocal enableDelayedExpansion for/rf:\%%F in(*)do(为%%A in(A B C D E F G H I J K L M N O p Q r S T U W X Y Z)do(设置“filename=!filename:%%A=%%A!”)ren ren%%F”“!filename!”>nul 2>&1)endlocal’好的,所以整个代码看起来像“@echo off setlocal enableDelayedExpansion for/rf:\%%F in(*)do(在(A B C D E F G H I J K L M N O P Q r S T U V W X Y Z)do(set“filename=!filename:%%A=%%A!”)ren%%F”“!filename!”>nul 2>&1)endlocal”