我想在文件夹的每个目录中创建相同的子目录。我在这里找到了答案:
命令提示符是:
FOR /d %A IN (e:\donuts\*) DO mkdir "%A\big"
但可能是因为我的目录名称包含空格和逗号,所以最终我得到了一堆基于每个现有目录中的第一个单词的目录,并且在命令提示符中出现了一堆错误。
我可以使用什么变体来允许我的目录名称中包含逗号和空格?
答案1
您可以使用 PowerShell!
当您位于其子文件夹中应添加新文件夹的文件夹中时,运行此 PowerShell 命令:
dir | ? {$_.PSIsContainer} | % {md ($_.FullName + '\New folder')}
这将列出当前文件夹中的条目(带有dir
,这是Get-ChildItem
),然后将它们过滤(?
)为文件夹。对于找到的每个文件夹,都会创建一个新文件夹(md
),其完整路径是找到的子文件夹的路径加上一个常量字符串,在本例中为\New folder
,但您可以将其设置为您想要的任何内容,包括带有空格和逗号的内容。
在 PowerShell 3 及更高版本中,它可以浓缩为如下形式:
dir -Directory | % {md ($_.FullName + '\New folder')}
这里,dir
采用可选-Directory
标志来仅获取文件夹。
要从批处理脚本调用此命令:
powershell -Command "dir | ? {$_.PSIsContainer} | % {md ($_.FullName + '\New folder')}"
答案2
您只是在目录文件名的两端缺少“”引号。因此应该是:
FOR /d %A IN ("e:\donuts\*") DO mkdir "%A\big"