尝试编写一个Windows语音识别宏。下面给出了代码。执行后,播放器返回“D:未找到MusikMedia \ Song1.mp3”。也就是说,反斜杠被消除了。我尝试在oShell.run中给出带有参数本身的路径,但返回相同的错误。但是正如您所看到的,保留音频文件名称之前的斜杠。并且空格也保留在文件名中,但我不知道它是否与路径相同。无论如何,我可以得到这个工作?或者你能告诉我它是如何在VBScript中完成的吗?
此外,如果这些程序安装在system32文件夹中,或者它安装在驱动器上(而不是驱动器内的文件夹内),我可以执行这个奇怪的问题,例如D:\ KMPlayer.exe或E :\ KMPlayer.exe。如果路径是,例如,E:\ Softwares \ KMPlayer \ KMPlayer.exe,则它不会打开。那么,请帮忙吗? :)
<?xml version="1.0" encoding="UTF-16"?>
<speechMacros>
<command>
<listenFor>Play [file]</listenFor>
<setTextFeedback speak="true">Playing {[file]}</setTextFeedback>
<script language="JScript">
<![CDATA[
var oShell = new ActiveXObject("WScript.Shell");
oShell.Run('"D:\KMPlayer.exe" "{[file.fileName]}"');
]]>
</script>
</command>
<fileNames name = "file" propname = "fileName" directory="D:\Media\Musik\" includeSubdirectories="true"/>
</speechMacros>
谢谢! :)
答案 0 :(得分:0)
在Javascript字符串文字中,您必须通过“\\”转义“\”。见the docs.所以:
oShell.Run('"D:\KMPlayer.exe" "{[file.fileName]}"');
==&GT;
oShell.Run('"D:\\KMPlayer.exe" "{[file.fileName]}"');
XML属性(例如directory="D:\Media\Musik\"
遵循他们自己的规则:没有“\”在这里逃避。