我想遍历c:\my_folder
中的所有子文件夹,检查指定的文件是否存在然后在c:\copy
中创建(如果不存在)文件夹(例如c:\copy\project1
)并复制提到的文件。
在批处理文件(for /d %variable in ("path") DO command
)中循环浏览文件夹是否容易,
但变量包含完整路径。要创建新文件夹,我只需要子文件夹的basename。
我怎么能得到它?当我删除其他字符时,我应该写另一个for循环吗?
有没有更简单的方法?
答案 0 :(得分:3)
如果我理解正确,你只需要文件夹名称。在这种情况下,这很容易:
for /d %%d in (C:\my_folder) do echo %%~nxd
答案 1 :(得分:0)
乔伊说的话。另一方面,您可以尝试完全不同的方法:
XCOPY "C:\my_folder\my_file" "C:\copy" /S /I
这会将指定文件从C:\my_folder
的所有子文件夹复制到C:\copy
并保留结构。不会在my_file
中创建没有C:\copy
的子文件夹。 /S
开关告诉XCOPY
在子文件夹中搜索my_file
。在继续之前,/I
参数用于确保C:\copy
应该是文件夹。