44

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

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

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

4

7 回答 7

86

只是想添加对 Windows Server 2008 和 2012 有效的详细信息。许多人可以更好地理解屏幕截图,这里有一个屏幕截图:
在此处输入图像描述

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

希望这可以帮助!

于 2014-12-10T12:35:31.433 回答
16

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

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

于 2009-04-21T14:02:04.193 回答
9

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

关键是 /tr 开关中的 \。

SCHTASKS /Create /u username /p pswd /ru "NT AUTHORITY\SYSTEM"
  /rp /sc ONSTART /tn task-name /tr "\"D:\name-of-file-to-run\" "
于 2009-02-18T17:53:39.460 回答
8

请参阅我对类似问题的回答,即如何设置“唤醒计算机以运行此任务...”选项,该选项只能从任务计划程序 UI(和通过 XML)获得,而不是schtasks.exe /create命令行。

它的螺母和螺栓是:

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

详情在这里

于 2009-02-06T18:45:01.617 回答
3

我希望人们会看到 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

希望这会有所帮助——玩得开心!

于 2017-08-01T23:35:24.753 回答
2

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

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

于 2011-12-30T07:58:27.260 回答
-1

在 App 中使用 My.Application.Info.DirectoryPath 无需 XML 设置。

于 2013-01-28T05:40:13.010 回答