3

寻找一个批处理文件,它将一个文件复制到多个文件夹中(在放置批处理文件的同一目录中),但不是它们的子文件夹。

例如:
我需要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.

4

1 回答 1

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

不过,就个人而言,我更喜欢第一种方法。

于 2012-08-10T21:50:35.953 回答