如何将参数传递给包含空格的 Windows 计划任务

Rod*_*ney 22 windows scheduled-tasks arguments

我需要设置一个 Windows 计划任务。它接受 1 个参数/参数,这是一个路径并且可以包含空格。我的计划任务不起作用 - 它在第一个空格处“破坏”了参数。

如果我在命令提示符中运行它,我可以将参数包装在“”中并且它工作正常,但是,这在计划任务用户界面中不起作用。

例如 C:\Program Files\xyz\FTP File Transfer\FTPFileTransferTask.exe "C:\Program Files\xyz\The Interface\Folder Path"

我试过用 "" ' ' [ ] () 包装参数,并尝试用 %20、~1 等填充空格,但没有成功。

我知道一种制作 bat 文件并在我的论点周围使用“”的解决方案,但我不想增加更多的复杂性。

我在 Windows 7 和 Windows 2008 Server 上尝试过,但都失败了。好像没有这方面的讨论?

Dol*_*kle 7

我处理过计划任务,您通常将参数放在自己的文本输入框中。这意味着您将操作指向程序/脚本字段指向 exe,并且“添加参数”字段应具有所有参数。(来源

博客图片

我相信添加此行为是为了防止 exe 文件路径中的空格导致问题。

我一直使用 PowerShell 脚本执行此操作。下面是一个例子:

  • 程序/脚本: powershell.exe
  • 添加参数:-command "& 'C:\HSD - Copy\logoffstudents.ps1' " -NonInteractive
  • 开始于:空白


小智 7

schtasks.exe /create /SC WEEKLY /D SUN /SD 11/12/2015 /ST 12:00:00 /TN "taskname" /TR "'c:\program files(x86)\task.exe' Arguments"
Run Code Online (Sandbox Code Playgroud)

请注意在'要运行的文件的路径中使用。


Kei*_*ith 5

在这种情况下,您可以通过以 8.3 格式传递路径参数来解决该问题。

dir /x您可以通过打开命令提示符并在驱动器根目录中发出命令来发现路径的 8.3 格式。

您应该会看到类似以下内容的条目

11/04/2011  12:10    <DIR>          PROGRA~1     Program Files
Run Code Online (Sandbox Code Playgroud)

为您的 Program Files 目录。

然后使用 " 后跟 cd xyz 将目录更改为 Program Files cd "Program Files,并再次发出命令dir /x以查找“The Interface”的 8.3 格式名称,依此类推。

您给出的示例的最终路径如下所示:

C:\PROGRA~1\XYZ\THEINT~1\FOLDER~1
Run Code Online (Sandbox Code Playgroud)