【发布时间】:2021-12-14 14:49:47
【问题描述】:
我正在寻找一个批处理,它查看以“@”开头的文件夹,然后在这些文件夹中有一个名为“Keys”的子文件夹,将 file.bikey 复制到一个静态文件夹名称“keys”。
由于内部有 cd/goto 命令,我使用的 for /d 循环显然停止工作。
Main
│ key-collector.bat
│
├───@folder_a
│ └───keys
│ a.txt
│
├───@folder_b
│ └───keys
│ b.txt
│
├───@folder_c
│ └───keys
│ c.txt
└───keys
└───(Destination)
当前代码:
@echo off
:start
set modsPath="C:\Exemple"
set keysPath="%modsPath%\keys"
for /d %%i in (@*) do (
echo %%i
copy /y %cd%\%%i\keys\*.txt %keysPath%
::cd %cd%\%%i\keys
::copy *.txt %keysPath%
)
PAUSE>nul
exit
【问题讨论】:
-
不要在代码块内使用无效标签。将
::更改为rem。然后在cd命令上,为什么还要cd?只需在复制后从完整路径或pushd path和popd复制文件即可。
标签: for-loop batch-file