查找将文件复制到多个文件夹(与放置批处理文件的目录相同)中的批处理文件,而不是其子文件夹。
例如:
我需要K:\NewCustomers\NewPartNumber.Bat
进入K:\NewCustomers\Customer Name\
但不是\Customer Name\
的任何子文件夹,有200-300个“客户名称”文件夹。
我正在使用:
for /R "K:\NewCustomers\" %%a in (.) do copy "K:\NewCustomers\NewPartNumber.bat" "%%a"
但这是递归的,现在这些其他文件夹中有文件夹,我无法在不将其放入每个子文件夹的情况下运行此命令。
我尝试运行for /d
循环:
for /d "K:\NewCustomers\" %%a in (.) do copy "K:\NewCustomers\NewPartNumber.bat" "%%a"
但是在语法方面没有成功,过了一段时间现在正在寻找一些事情并尝试不同的事情,我正试着拔掉头发寻找答案。我收到这个错误:
K:\NewCustomers* was unexpected at this time.
答案 0 :(得分:5)
使用for /d
以非递归的方式循环遍历文件夹确实是正确的方法,但你需要像这样使用它:
for /d %%a in ("K:\NewCustomers\*") do copy "K:\NewCustomers\NewPartNumber.bat" "%%a"
或者,您可以将for /f
循环与dir
结合使用:
@echo off
pushd "K:\NewCustomers"
for /f "tokens=*" %%a in ('dir /A:D /B') do copy "NewPartNumber.bat" "%%a"
popd
就个人而言,我更喜欢第一种方法。