
わかりました。これを実行する必要があるファイルは 15,000 個以上あります。
ルート ディレクトリでこれを試してみましたが、C:\asf>
コマンドは次のとおりです。for /r %x in (*.asf) do aifdump -hr "%x" "%CD%"
しかし、ファイルはルートディレクトリに移動され、上書きされています。aifdump
の構文はaifdump.exe [オプション] [ASF_path] [Texture_dump_path]です。この問題を修正する方法はどれでもかまいません。Pythonなどを使用してもかまいません。ご協力ありがとうございます。
動作させる必要がある場合のサンプルを以下に示します。http://www.mediafire.com/?e9jwa3tkedilcy5
マイケルとボブ、助けてくれてありがとう。コマンドを実行するとこうなります
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
は 3 つの修飾子の連結であり、変数 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\
。