【问题标题】:Inno Setup, spaces and double quote in [Run][Run] 中的 Inno 设置、空格和双引号
【发布时间】:2014-06-29 23:34:28
【问题描述】:

我正在尝试在 Windows 上安排一项任务,但很遗憾,它不起作用! 任务已创建但不正确。

当我查看任务的参数时,它说:

PROGRAM: C:\Program
ARGUMENTS: Files(x86)\AppName\executable.exe

我是这样进行的:

[Run]
Filename: "schtasks.exe"; Parameters: "/create /tn TaskName /sc MINUTE /mo 10 /tr ""{app}\{#MyAppExeName}""";

而且我不知道为什么它不起作用,双引号应该可以解决“空格问题”

有什么想法吗?

【问题讨论】:

    标签: inno-setup quotes spaces


    【解决方案1】:

    这个问题是已知的,在this knowledge base article 中有描述。您需要将文件名括在反斜杠和引号的组合之间。那篇文章描述:

    原因:

    如果计划任务的路径包含 空间。例如,如果您为 使用 Schtasks.exe 执行以下任务:

     "c:\包含空格的文件夹名\task.bat"

    解决方法:

    要解决此问题,请附上任务的路径部分(不是 反斜杠 (\) 和引号之间的参数或开关) 标记 (") 字符组合,例如 \"。附上完整的 引号之间的任务路径(包括参数或开关) 在创建包含空格的路径或命令时照常标记。

    例如,以下示例任务在您计划时不会运行 它:

     schtasks /create /tn "我的任务" /tr "c:\foldername 包含空格\script.bat 参数" /sc once /sd 07/29/2003 /st 10:01

    但是,当您将任务的路径括在反斜杠之间时 和引号字符组合如下 例如,定时任务运行成功:

     schtasks /create /tn "my task" /tr "\"c:\foldername name contains spaces\script.bat\" arguments" /sc once /sd 07/29/2003 /st 10:01

    所以你的情况可能是:

    [Run]
    Filename: "schtasks.exe"; Parameters: "/create /tn TaskName /sc MINUTE /mo 10 /tr ""\""{app}\{#MyAppExeName}\""";
    

    【讨论】:

    • 完美!非常感谢。多么快速的答案:o
    • 此解决方法也适用于其他类似的概念。相关示例:文件名:powershell.exe; Parameters: "-Command some-command -Description ""\""some description with spaces in it\""" 太糟糕了,它完全破坏了它周围的语法突出显示..
    【解决方案2】:

    迟到了,但正如 in this SO answer 所提到的,您可以尝试简单地在 /TR 参数周围添加单引号,这将导致

    Parameters: "/create /tn TaskName /sc MINUTE /mo 10 /tr '"{app}\{#MyAppExeName}"'";
    

    这可能比杂耍反斜杠要容易一些。

    【讨论】:

      猜你喜欢
      • 2011-09-20
      • 2013-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多