簡體   English   中英

帶有參數和 STDOUT 重定向的 Windows 任務計划程序作業

[英]Windows Task Scheduler job with parameter and STDOUT redirect

我有一個命令行程序,它不需要參數或一個參數。 如果沒有提供參數,它會用簡單的代碼提示輸入參數,例如:

String theParameter = String.Empty;
if (args.Length == 1) theParameter = args[0];
else {
    Console.Write("Please provide theParameter: ");
    theParameter = Console.ReadLine();
}
Console.WriteLine("Some Output");

它以交互方式按預期工作:

> myprogram
Please provide theParameter:
{a value provided}
Some Output

要么

> myprogram SomeValue
Some Output

要么

> myprogram SomeValue > results.log
{Some Output in the results.log file)

一切都按預期工作。

同樣,當我將 Windows 7 任務計划程序與myprogram SomeValue一起使用時,它會按預期啟動、執行和完成。

但是,當我使用myprogram SomeValue > results.log將 STDOUT 重定向到一個文件時,它會啟動、運行並且永遠不會完成。 如果我手動運行該作業(通過右鍵單擊並從 Task Scheduler 運行),它會彈出一個控制台窗口,其中顯示Please provide the Parameter

我的問題是:如果我將 STDOUT 重定向到文件,為什么 Windows 任務計划程序作業會短路我傳遞給程序的參數?

輸出重定向可能會也可能不會與 Windows 任務計划程序一起使用 解決方法是在批處理文件中運行所需的命令(包括輸出重定向),並從任務計划程序調用批處理文件。

script.bat
----------
myprogram SomeValue > results.log

答案是什么? 我也有同樣的問題。 我有一個腳本,該腳本需要任務計划程序中的參數。 任務計划程序的“操作”選項卡>“程序/腳本:cmd”。 添加參數> cmd python.exe腳本參數>輸出文件> 2&1。 Havent運氣不錯。 有誰知道該怎么做??? 提前致謝。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM