向目录名称包含标点符号的多个目录添加子文件夹

向目录名称包含标点符号的多个目录添加子文件夹

我想在文件夹的每个目录中创建相同的子目录。我在这里找到了答案:

向每个子文件夹添加一个新文件夹

命令提示符是:

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"

相关内容