比方说,我有一个名为目录Grandparent
在这个目录里多个其他的文件夹,Parent 1
,Parent 2
,等。我的目标是创建一个新的文件夹,Child
,里面每一个的Parent
文件夹。
例如,我有:
Grandparent/
Parent1/
Parent2/
...
...
ParentX/
我想要的是:
Grandparent/
Parent1/
Child/
Parent2/
Child/
...
...
ParentX/
Child/
有没有办法在CMD中做到这一点?(注意:我无法下载Powershell或任何其他使我的生活更轻松的便捷工具,因为我始终使用默认的Windows命令提示符)
更新
按照评论中的链接,我尝试了以下操作:
for /r %%a in (.) do (
rem enter the directory
pushd %%a
echo In Directory:
mkdir testFolder
cd
rem leave the directory
popd
)
但是,这将testFolder
在每个新创建的文件夹中创建该文件夹:
Grandparent/
Parent1/
Child/
Child/
Child/
...
Parent2/
Child/
Child/
Child/
...
...
...
ParentX/
Child/
Child/
Child/
...
Child/
Child/
Child/
...
这是因为该for /r
命令会在每次创建新目录时更新要处理的文件列表,因此仅在要访问固定目录列表时才有用。
这是一个批处理文件(test.cmd),它将执行您想要的操作。将其放在Grandparent
目录中。
test.cmd:
@echo off
setlocal
for /f "usebackq tokens=*" %%a in (`dir /b /a:d`) do (
rem enter the directory
pushd %%a
echo In Directory: %%a
md child
rem leave the directory
popd
)
endlocal
笔记:
dir /b /a:d
被评估一次,因此目录列表是固定的for /f
将仅在此固定列表中循环一次。输出示例:
> test
In Directory: Documentation
In Directory: subdir
In Directory: test
In Directory: test with space
In Directory: test1
> dir /b /a:d /s child
F:\test\Documentation\child
F:\test\subdir\child
F:\test\test\child
F:\test\test with space\child
F:\test\test1\child
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句