【问题标题】:Schtasks.exe does not accept blank spaces when giving file pathSchtasks.exe 在提供文件路径时不接受空格
【发布时间】:2016-05-03 19:19:08
【问题描述】:

我正在办公室推出一个新的 python 脚本,为了让这个运行顺利,我还制作了一个批处理文件来安装它,并让它在用户登录时运行。

我使用 schtasks.exe 来为此安排一个任务,所以这就是我要运行的内容

schtasks /create /TN "fooname" /SC ONLOGON /TR "C:\foo - bar\fooscript.exe" /Delay 0005:00

我得到的错误是 0x80070002,这意味着找不到文件。导出我创建的任务后,我可以看到它把路径的第一位和最后一位分隔成

<Command>C:\foo</Command>
<Arguments>bar\fooscript.exe</Arguments>

我试过microsofts own help article,但没有运气。我希望在没有关于 fooscript.exe 的任何参数的情况下运行它。

【问题讨论】:

  • 问题在于连字符,因为它是一个开关字符。
  • @bgalea 我怀疑连字符是问题的一部分 :) 不幸的是我无法更改文件夹的名称,有没有办法将其存储在变量中或巧妙地使用引号以便忽略连字符?
  • 看看在(适应您的 guid)HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tasks\{34B086CE-B5DF-42E7-A815-87335E063F24} 的注册表项中 foo 之后如何有一个&符号。尝试使用reg 命令重写不带 & 的密钥。
  • 执行 `dir \x "c:\foo - bar" 这将显示目录的短名称。使用该短名称代替“foo - bar”
  • 应该是 `dir \x "c:\foo*" - 具有全名的版本将生成该特定目录内容的报告。

标签: windows batch-file scheduled-tasks


【解决方案1】:

正如 Magoo 指出的那样,我能够使用文件夹的短名称,可以使用 a 访问它

dir /x

扔回一个像“FOO~1”这样的名字。在我的路径中使用它使其工作。

谢谢!

【讨论】:

    【解决方案2】:

    对不起,旧线程,但只是找到了比这里更好的解决方法。将目录名称放在提示变量中,然后在命令中使用 var。

     SET fname="c:\path with spaces\target.exe"
     SchTasks [args] /TR %fname%
    

    【讨论】:

      猜你喜欢
      • 2020-10-29
      • 1970-01-01
      • 2019-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多