CMD / batch获取子文件夹的基名

时间:2012-02-20 18:17:03

标签: batch-file cmd directory

我想遍历c:\my_folder中的所有子文件夹,检查指定的文件是否存在然后在c:\copy中创建(如果不存在)文件夹(例如c:\copy\project1)并复制提到的文件。

在批处理文件(for /d %variable in ("path") DO command)中循环浏览文件夹是否容易, 但变量包含完整路径。要创建新文件夹,我只需要子文件夹的basename。 我怎么能得到它?当我删除其他字符时,我应该写另一个for循环吗? 有没有更简单的方法?

2 个答案:

答案 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应该是文件夹。