使用schtasks.exe指定计划任务的运行目录

我有一个应用程序被调度任务调用。 它从Windows Server 2003迁移到Windows Server 2008.在2003年,应用程序运行在可执行文件所在的目录中。 在2008年, Environment.CurrentDirectory (C#)报告它正在C:\ Windows \ System32中运行。 我如何设置运行目录? 我正在使用schtasks.exe进行命令行部署。

UPD :通过界面,它似乎是动作编辑屏幕上的“开始(可选)”字段。

UPD :看起来像使用XML文件可能会有帮助,但我希望没有它。

我最近遇到了同样的问题。 我解决这个问题的方法是将/ V1开关添加到schtasks命令中。

/ V1创建一个兼容pre-vista的计划任务,并自动填充Start In目录。

只是想添加对Windows server 2008和2012有效的细节。许多人可以更好地理解屏幕截图,这里是一个屏幕截图:
在这里输入图像说明

把它们加起来。 当您为计划任务创建动作时,可以选择设置“开始(可选)”字段(在屏幕截图上以红色四舍五入)。 这将是您的进程触发的目录。

希望这可以帮助!

您可以使用以下命令在目录中设置开始

关键是/ tr开关中的\。

 SCHTASKS /Create /u username /p pswd /ru "NT AUTHORITY\SYSTEM" /rp /sc ONSTART /tn task-name /tr "\"D:\name-of-file-to-run\" " 

请参阅我的回答 ,以了解如何设置“唤醒计算机以运行此任务…”选项,该选项只能从任务计划程序用户界面(通过XML)获得,而不能通过schtasks.exe /create命令行。

它的坚果和螺栓是:

  1. 通过schtasks.exe /create /tn MyTask ...创建您的任务schtasks.exe /create /tn MyTask ...
  2. 通过schtasks.exe /query /xml /tn MyTask > MyTask.xml将任务导出到XML schtasks.exe /query /xml /tn MyTask > MyTask.xml
  3. 通过XSLT或搜索/替换更新这个XML
  4. 通过schtasks.exe /create /tn MyTask /xml MyTask.xml /f重新导入(覆盖旧的任务) schtasks.exe /create /tn MyTask /xml MyTask.xml /f

细节在这里 。

尝试cd /d "<WorkingDirectory>" & schtasks <SchtasksParams>

更改工作目录,然后运行schtasks

在应用程序中使用My.Application.Info.DirectoryPath而不需要XML设置。

我希望人们能够看到XML方法的这个答案 (坦率地说,我认为这是一个更简洁的方法,围绕着可以在任务中设置什么参数来配置特定功能也有一些更好的文档)。

第1步:创建设置所有任务设置的XML文件,以获取更多有关XML元素的信息:

第2步:具体到“在哪里”任务将执行 (如在起始目录脚本将开始在命令行,这是直接关系到OP的问题….你需要像这样配置参数…

 <?xml version="1.0" encoding="UTF-16"?> <Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task"> <RegistrationInfo> <Date>2012-08-19T16:49:14.6182</Date> <Author>YOUR-COMPUTER-DOMAIN\YOUR-USERNAME</Author> </RegistrationInfo> ... a bunch of other stuff in between here .... <Actions Context="Author"> <Exec> <Command>C:\PythonEXE\mini_program_test.exe</Command> <Arguments></Arguments> <WorkingDirectory>C:\Some\where\here\</WorkingDirectory> </Exec> </Actions> </Task> 

请注意,WorkingDirectory参数中没有引号 – 我之前犯了这个错误。

第3步:由于您将使用schtasks.exe为了通过XML创建这个新的任务,请看看这里的更多信息: https : //msdn.microsoft.com/en-us/library/bb736357.aspx

第4步:在Windows命令行中,您将执行类似这样的事情(一旦XML准备就绪)

 C:\>schtasks /CREATE /TN "TASK-NAME-HERE" /RU "YOUR-USERNAME" /RP "YOUR-PASSWORD" /XML C:\YOUR-XML-FILE-LOCATION\ready.xml 

希望这有助于一点 – 有乐趣!