我已经写了一个video转换批处理,用户可以简单地将他的video从任何磁盘或分区拖放到批处理,之后转换的video将保存在特定磁盘上的特定位置。
代码看起来像这样
@echo off %~d0 cd %~p0 for %%f in (%*) do ... pause
实际的问题在于(%*) 。
当我的文件名称中有一个结束圆括号时,批处理将不起作用。 为了解决这个问题,我使用了("%*") ,但是这不适用于名称中包含空格的文件或多个文件。
我也尝试过(%~*)但这是无效的。
我注意到一些研究后,当我用名称file(test)和file test删除batch file的多个文件时, %*parsing为
如何检测窗口全局范围的拖动操作?
如何拖拽大量的文件而不消耗系统资源?
拖放到Win7机器到我的应用程序
为什么我不能从Windows中的CD上将文件拖放到Eclipse / SWT Drop Target上
如何创build拖放草莓Perl程序?
file(test) "file test"
我的问题是:我如何处理这个?
理想情况下,我希望%*parsing为"file(test)" "file test" (两个名字用引号括起来)
如何将资源pipe理器中的图片拖放到WPF控件上?
将具有unicode名称的文件拖放到Windows中的batch file中
如果应用程序位于特定的目录中,则拖放不起作用
如何获得新的Windows拖放游标
捕捉Qt中的拖动取消事件
:nextArgument set arg=%~1 if not defined arg goto :eof call :processFile "%arg%" shift goto nextArgument :processFile set file=%~1 echo "%file%" :: do your processing here goto :eof
这将一次处理每个由空格分隔的参数(但引用的参数可以包含空格),并将它们传递给processFile例程。 我使用%~1先从参数中删除引号,然后在调用processFile时加入引号。 这样,我知道什么时候我得到processFile,一切都有引号围绕它。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。