我想将文件复制到文件夹的第一个子目录。
示例:
\---main_folder
|
\---subfolder *(copy here)*
|
\---sub_subfolder *(do NOT copy here)*
我知道将文件复制到目录及其子目录非常容易,例如:
for /r "G:\main_folder" %%i in (.) do @copy "G:\abc.txt" "%%i"
但是此代码将文件复制到main_folder
的所有子目录中,而我只希望复制到subfolder
(请参见我的基本示例)。
我检查了for
,(for /?
)上的帮助,但找不到答案。
我想念什么吗?
答案 0 :(得分:1)
由于您正在使用for /R
,因此文件将被复制到树中的每个目录中。
使用for /D
来遍历某个层次结构级别,如以下示例所示:
for /D %%I in ("G:\main_folder\*") do copy "G:\abc.txt" "%%~I"
这当然会将文件复制到G:\main_folder
的每个直接子目录中。
答案 1 :(得分:0)
因为您的问题是'I want to copy a file to the first subdirectory of a folder.'
,而不是'I want to copy a file to every top level subdirectory of a folder.'
,这是您的评论,所以您同意有效。。您需要首先确定first
的组成。
此示例使用first
作为名称排序顺序,按名称排序顺序(按字母顺序排列)。
@For /F Delims^=^ EOL^= %%A In ('Dir /B/AD/ON "G:\main_folder"') Do @Copy /Y "G:\abc.txt" "%%A" & GoTo :EOF
编辑
,因为您现在已经说明问题参数是错误的,没有误解,即'I want to copy a file to every top level subdirectory of a folder'
,因此最初提供的注释显示正确的方法:
@For /D %%A In ("G:\main_folder\*") Do @If Exist "G:\abc.txt" Copy /Y "G:\abc.txt" "%%A" >Nul 2>&1
或者,应该更快一些,首先执行If Exist
:
@If Exist "G:\abc.txt" For /D %%A In ("G:\main_folder\*") Do @Copy /Y "G:\abc.txt" "%%A" >Nul 2>&1