好吧,我有 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 /?
。如果%x
是C:\asf\blah\bleh\file.asf
:dp
表示驱动器 ( C:
) 和路径 ( \asf\blah\bleh\
),则C:\asf\blah\bleh\
。