我写了一个名为“joiner.bat”的批处理脚本。它需要在文件夹的 730 个子目录中运行。joiner.bat 文件已复制到每个子文件夹中,只需在每个子文件夹中运行即可。我试过了,但不起作用:
for %f in (*) do joiner.bat %f
我尝试在批处理文件之外的命令提示符下运行该命令,但它没有执行任何操作。我需要该命令进入文件夹,运行命令,返回上一个文件夹,进入下一个文件夹,运行命令,等等。
答案1
这应该可以做到:
for /d %%a in (*) do (
cd %%a
call joiner.bat
)
在顶层目录中将其创建为批处理文件。
我根据评论修改了您的 bach 文件。您可能需要更多括号,并且 DelayedExpansion 需要使用 ! 而不是 %。试试这个
setlocal enabledelayedexpansion
for /d %%a in (*) do (
cd %%a
copy /b *.xml newfile.xml
@echo off
SET "CDIR=%~dp0"
SET "CDIR=!CDIR:~0,-1!"
FOR %%i IN ("!CDIR!") DO (
SET "PARENTFOLDERNAME=%%~nxi"
move newfile.xml "C:\users\lacroixja01\desktop\test\%PARENTFOLDERNAME%.xml"
)
)
答案2
我必须将其修改为如下所示:
for /d %%a in (*) do (
cd %%a
call joiner.bat
cd ..
)