我有一个文件夹,里面有标记为 0001-0999 的子文件夹。其中有三个子文件夹,A、B、C。我想要批量创建一组文件夹,放入子文件夹 A。目前,我只能通过调出特定的文件夹编号 (0001) 来实现此功能。
我现在正在做的工作:
FOR /d %A IN (C:\Folders\0001\A)
DO mkdir "%A\a" & mkdir "%A\b" & mkdir "%A\c" & mkdir "%A\d" & mkdir "%A\e"
有没有办法用某个数字替换 0001,以便选择所有文件夹,还是我只能这样做 999 次?
答案1
有一个非常简单的方法可以做到这一点,你可以在需要的时候进行构建:
@echo off
set "dir=C:\Folders"
setlocal EnableDelayedExpansion
for /d %%A in (%dir%\*) do (
set "sub=%%A\A"
cd !sub!
md a b c d e 2>nul
)
一切都在一个循环中完成。我做的第一件事是dir
为目录设置一个变量 ( ),然后setlocal EnableDelayedExpansion
需要能够在循环中分配和使用变量。对于循环本身:它查看目录中的所有子文件夹 ( /d in %dir%\*
) 并将每个子文件夹分配给一个参数 ( %%A
)。该参数用于设置一个新变量 ( !sub!
),我们可以在其中指定要在其中创建新文件夹的子文件夹 ( \A
)(来自代码的 a、b、c、d 和 e)。我们要做的第二件事是更改目录 ( cd
),这样我们就不必为使用 make directory ( md
) 命令创建的每个文件夹指定子文件夹。最后,md a b c d e 2>nul
将在我们的目录中创建每个文件夹并将错误消息发送到nul
(如果子文件夹已存在,则会出错)。就是这样!希望这对您或遇到此问题的人有所帮助。