我使用了下面的代码来执行schtasks
来自 VB6 的命令。执行时,如果文件夹包含空格,则忽略文件夹。例如,"C:\program files\test\test.exe"
将被转换为"c:\program "
。我该如何解决这个问题?
MyAppname = Chr(34) & App.Path & "\" & App.EXEName & ".exe" & Chr(34)
StrCommand = "schtasks /create /sc ONLOGON /RL HIGHEST /tn myapp /tr " & MyAppname
Shell StrCommand, vbHide
新任务添加为"c:\program"
代替"C:\program files\test\test.exe"
转义 VB6 或 VBScript 字符串中的引号理论上很简单,但看起来常常令人恐惧。您可以用另一个双引号转义一个双引号。
一个例子:
“c:\程序文件\我的应用程序\app.exe”
如果我想转义双引号,以便将其传递给 Joe 列出的 shell 执行函数或 VB6 Shell 函数,我会编写它:
escapedString = """c:\program files\my app\app.exe"""
这是如何运作的?第一个和最后一个引号将字符串包裹起来,让 VB 知道这是一个字符串。然后,字符串中按字面显示的每个引号都会在其前面添加另一个双引号以对其进行转义。
当您尝试传递带有多个引用部分的字符串时,情况会变得更加疯狂。请记住,您想要传递的每个引用都必须转义。
如果我想将这两个带引号的短语作为单个字符串传递,并用空格分隔(这并不罕见):
“c:\程序文件\我的应用程序\app.exe”“c:\文档和设置\史蒂夫”
我会输入这个:
escapedQuoteHell = """c:\program files\my app\app.exe"" ""c:\documents and settings\steve"""
我已经用一些带有更多引用的 VBScript 来帮助我的系统管理员。
它并不漂亮,但这就是它的工作原理。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)