简单的批处理脚本在拖放文件名中带有下划线的文件时中断



我有这个简单的批脚本。。。

@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"中也找到了它们
有人知道为什么下划线会成为drag&掉落
我在使用WinXP,这与它无关,是吗?

问题是目录的名称,在这种情况下,逗号是有问题的字符。

当拖动&删除文件时,只有在名称中找到空格时才会引用该文件
但在这种情况下,逗号会将名称拆分为多个参数。

D:Audible[..power progressive symphonic gothic..]Videostest_-_test.mp4

在这种情况下,您可以使用%*来访问原始全名,但在其他一些情况下(当名称中包含&时),您需要一个更复杂的解决方案。

SO:拖放多个文件的批处理文件?

最新更新