如何在命令提示符中创建与文件同名的文件夹(递归子文件夹)

如何在命令提示符中创建与文件同名的文件夹(递归子文件夹)

好吧,我有 15,000 多个文件需要执行此操作。
我尝试过,我的根目录是C:\asf> 命令:for /r %x in (*.asf) do aifdump -hr "%x" "%CD%"

但文件将进入我的根目录并被覆盖,
aifdump 的语法是 aifdump.exe [Option] [ASF_path] [Texture_dump_path] 任何解决这个问题的方法都可以,即使你使用 python 或类似的,谢谢你的帮助

如果您需要它,这里有一个示例:http://www.mediafire.com/?e9jwa3tkedilcy5

感谢 Michael 和 Bob 的帮助。当我运行命令时,它会这样做

C:\asf>for /r %x in (*.asf) do aifdump -hr "%x" "%~dpnx"

C:\asf>aifdump -hr "C:\asf\9\0.asf" "C:\asf\9\0"

Texture 0.dds : 2.00 KB

然后 aifdump 就会崩溃。我发现如果我之前创建了输出文件夹

运行该命令它将工作,那么我该如何重新编写命令以使

运行 aifdump 命令之前所需的目录。

我想到了我只需要aifdump -hr改变mkdir

再次感谢你的帮助

答案1

%CD%总是会返回您运行命令时所在的目录;在本例中是C:\asf'。如果我理解了您的要求,您希望它们每个都进入单独的目录?如果是这样,您只需要在命令中构建该目录名称。

但请注意,你不能有一个文件和一个文件夹,它们具有相同的名称和相同的父路径;例如,如果你有一个名为的文件C:\asdf\asdf.asf,你不能还要创建一个名为的文件夹,C:\asdf\asdf.asf因为路径可能会产生歧义。

最简单的选择是去掉文件扩展名,该for命令可以为您完成:

for /r %x in (*.asf) do aifdump -hr "%x" "%~dpnx"

注意:%~dpnx是三个修饰符的组合,给出变量 x 中包含的文件名的驱动器、路径和名称(不带扩展名)。

答案2

所以,我猜您希望输出路径与源文件位于同一位置?

for /r %x in (*.asf) do aifdump -hr "%x" "%~dpx"

%~特殊修饰符,请参阅for /?。如果%xC:\asf\blah\bleh\file.asf:dp表示驱动器 ( C:) 和路径 ( \asf\blah\bleh\),则C:\asf\blah\bleh\

相关内容