通过 cmd / quoteting Problem 的计划任务

scheduled tasks via cmd / quoting Problem

提问人:Felix Waltl 提问时间:8/30/2023 最后编辑:jonrsharpeFelix Waltl 更新时间:8/30/2023 访问量:59

问:

通过命令行创建计划任务时,我遇到了引号问题。 我尝试创建一个任务,该任务启动批处理脚本并向其传递一些参数。 该命令如下所示:

 SCHTASKS /CREATE /RU "MyUserName" /SC ONCE /ST 00:00 /TN "TestTask" /TR "D:\Thats\my\script.bat 'P:\aram\one' 'P:\aram\two\'" /IT /F 

现在,任务被创建,但如果我通过

CHTASKS /query /TN "TestTask" /FO List /V

我得到以下信息:

D:\Thats\my\script.bat "P:\aram\one" "P:\aram\two\'

而不是以下信息:

D:\Thats\my\script.bat "P:\aram\one" "P:\aram\two\"

第二个信息的末尾有一个双高引号,而第一个没有。 也许有人会问,以斜杠结尾的路径是什么,但我确实需要它来编写脚本。

我的第二个问题是为什么任务计划程序似乎将每个单引号都更改为双引号。

批处理文件 cmd windows-task-scheduler 单引号

评论

0赞 Compo 8/30/2023
我想让你回答的问题是,你为什么要用反斜杠终止一个论点?我问是因为它通常是一个分隔符,而不是一个终结符。不要犯一个常见的错误,认为包含一个以某种方式将其区分为目录而不是文件。您是否尝试过用另一个反斜杠来逃避反斜杠?
0赞 Felix Waltl 9/4/2023
@Compo:是的,尾随向斜杠的原因是为了强调它是一个目录,而不是你说的是一个文件。然后,我尝试按照@Mofi的建议修改我的命令: 它按预期工作。 @Mofi:我只是不想手动触发任务,所以对我来说不是问题。%SystemRoot%\System32\schtasks.exe /Create /RU "MyUserName" /SC ONCE /ST 00:00 /TN "TestTask" /TR "%SystemRoot%\System32\cmd.exe /D /C \"D:\Thats\my\script.bat\" \"P:\aram\one\" \"P:\aram\two\\\"" /IT /FWARNING: Task may not run because /ST is earlier than current time.

答:

1赞 Magoo 8/30/2023 #1

[未经测试]

我相信单引号前的反斜杠正在转义该单引号,如您的结果所示(实际结束单引号,预期双引号)

所以 - 我会尝试将反斜杠加倍,以便反斜杠被转义。