0

私はこの単純なバッチスクリプトを持っています...

@ECHO OFF
:batch
IF "%~1"=="" GOTO end
ECHO video=FFVideoSource("%~f1")>"%~f1.avs"
ECHO audio=BassAudioSource("%~f1")>>"%~f1.avs"
ECHO AudioDub(video,audio.TimeStretch(pitch=432.0/4.4))>>"%~f1.avs"
SHIFT
GOTO batch
:end

コマンドプロンプトから実行すると、すべての場合で正常に動作しますが、ファイル名にアンダースコアを含むファイルをドラッグアンドドロップすると壊れます。いくつかの avs ファイルが作成されます。%~1 の親ディレクトリと、"C:\Documents and Settings\Admin" でも見つかりました。
ドラッグ&ドロップでアンダースコアが問題になる理由を知っている人はいますか?
私は WinXP を使用していますが、それは関係ありませんね。

4

1 に答える 1

0

問題はディレクトリの名前です。この場合、コンマが問題のある文字です。

ファイルをドラッグ アンド ドロップすると、名前にスペースが含まれている場合にのみ引用されます。
ただし、この場合、コンマは名前を複数の引数に分割します。

D:\Audible[..power progressive symphonic gothic..]\Videos\test_-_test.mp4

この場合、 を使用%*して元のフルネームにアクセスできますが、他の場合 (&名前に a が含まれる場合) には、より複雑なソリューションが必要になります。

SO: 複数のファイルのバッチ ファイルをドラッグ アンド ドロップしますか?

于 2013-08-22T10:54:29.793 に答える