C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: C#から引数""付のコマンド(exe)を実行したい


(過去ログ 51 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■28483 / inTopicNo.1)  C#から引数""付のコマンド(exe)を実行したい
  
□投稿者/ YOU (1回)-(2008/11/26(Wed) 21:59:08)

分類:[C#] 

言語:VisualStdio 2008 C#

タスクスケジューラの登録をSystem.Diagnostics.Process.Start()を使って
以下のコーディングで実行したのですが、タスクスケジューラに登録されません。
直接、batファイルで実行するとタスクスケジューラに登録されました。
気になる箇所として"\"" + sBackApp + "\"" なのですがこの記述で
問題ないのでしょうか?
すみませんがご教授お願いいたします。


c#(エラーは出ずにスケジューラに登録されない)
string sCreate = "/create /tn"
string sBackApp = "Backup App"
string sPath = "/tr c:/TEST/ServiceInstall.bat /sc daily /st 04:00:00";
string sCmd = sCreate + "\"" + sBackApp + "\"" + sPath;
Process.Start("schtasks.exe","")

batファイル(タスクスケジューラに登録される)
schtasks /create /tn "Backup App" /tr /../Anritsu/ServiceInstall.bat /sc daily /st 04:00:00


引用返信 編集キー/
■28484 / inTopicNo.2)  Re[1]: C#から引数""付のコマンド(exe)を実行したい
□投稿者/ 魔界の仮面弁士 (907回)-(2008/11/26(Wed) 22:38:38)
2008/11/26(Wed) 22:40:16 編集(投稿者)

No28483 (YOU さん) に返信
> string sCmd = sCreate + "\"" + sBackApp + "\"" + sPath;
> Process.Start("schtasks.exe","")
セミコロンがあちこち抜けているようですし、肝心の
変数 sCmd が使用されていませんが、掲示板投稿時の誤記でしょうか?

最後の一行は、Process.Start("schtasks.exe", sCmd); ですよね。


> string sCmd = sCreate + "\"" + sBackApp + "\"" + sPath;
これだと、『/create /tn "Backup App" /tr…』ではなく、
『/create /tn"Backup App"/tr…』になってしまいますよ。


> c#(エラーは出ずにスケジューラに登録されない)
try catch できるような例外としてではなく、そのエラーが
標準エラー出力に吐き出されていたという可能性はありませんか?

ProcessStartInfo psi = new ProcessStartInfo("schtasks.exe", sCmd);
Process p = new Process();
p.StartInfo = psi;
psi.RedirectStandardOutput = false;
psi.RedirectStandardError = true;
psi.UseShellExecute = false;
p.Start();
string stdError;
using (StreamReader st = p.StandardError)
{
 stdError = st.ReadToEnd();
 st.Close();
}


それで駄目なら、/RU と /RP のパラメータも指定してみるとか。
引用返信 編集キー/
■28485 / inTopicNo.3)  Re[1]: C#から引数""付のコマンド(exe)を実行したい
□投稿者/ やじゅ (800回)-(2008/11/26(Wed) 22:42:09)
やじゅ さんの Web サイト
2008/11/26(Wed) 22:45:13 編集(投稿者)

No28483 (YOU さん) に返信
> c#(エラーは出ずにスケジューラに登録されない)
> string sCreate = "/create /tn"
> string sBackApp = "Backup App"
> string sPath = "/tr c:/TEST/ServiceInstall.bat /sc daily /st 04:00:00";
> string sCmd = sCreate + "\"" + sBackApp + "\"" + sPath;
> Process.Start("schtasks.exe","")

sCmdを使ってないのは、質問書く上での記述ミスですかね?
Process.Start("schtasks.exe",sCmd)

追記:
もたもたしてたら、先に回答が付いてしまいました(^^;
記念に残しておきます。
引用返信 編集キー/
■28486 / inTopicNo.4)  Re[2]: C#から引数""付のコマンド(exe)を実行したい
□投稿者/ よねKEN (22回)-(2008/11/26(Wed) 22:43:26)
#検証している間に回答がついてるorz

>>string sCmd = sCreate + "\"" + sBackApp + "\"" + sPath;
> これだと、『/create /tn "Backup App" /tr…』ではなく、
> 『/create /tn"Backup App"/tr…』になってしまいますよ。

sCmdはProcess.Startメソッドの第二引数に正しく指定されてるものとして、
魔界の仮面弁士さんのご指摘箇所を修正すればタスクに登録されましたよ。(コード書いて実行してみました)

引用返信 編集キー/
■28496 / inTopicNo.5)  Re[3]: C#から引数""付のコマンド(exe)を実行したい
□投稿者/ YOU (2回)-(2008/11/27(Thu) 09:20:41)
No28486 (よねKEN さん) に返信
> #検証している間に回答がついてるorz
>
> >>string sCmd = sCreate + "\"" + sBackApp + "\"" + sPath;
>>これだと、『/create /tn "Backup App" /tr…』ではなく、
>>『/create /tn"Backup App"/tr…』になってしまいますよ。
>
> sCmdはProcess.Startメソッドの第二引数に正しく指定されてるものとして、
> 魔界の仮面弁士さんのご指摘箇所を修正すればタスクに登録されましたよ。(コード書いて実行してみました)
>
魔界の仮面弁士さん、やじゅさん、よねKENさん
回答ありがとうございます。
記述ミスが多いにも関わらず回答頂きまして、本当にありがとうございました。

解決済み
引用返信 編集キー/
■28500 / inTopicNo.6)  Re[4]: C#から引数""付のコマンド(exe)を実行したい
□投稿者/ ぽぴ王子 (415回)-(2008/11/27(Thu) 10:22:02)
ぽぴ王子 さんの Web サイト
No28496 (YOU さん) に返信
> ■No28486 (よねKEN さん) に返信
>>#検証している間に回答がついてるorz
>>
>>>>string sCmd = sCreate + "\"" + sBackApp + "\"" + sPath;
> >>これだと、『/create /tn "Backup App" /tr…』ではなく、
> >>『/create /tn"Backup App"/tr…』になってしまいますよ。
>>
>>sCmdはProcess.Startメソッドの第二引数に正しく指定されてるものとして、
>>魔界の仮面弁士さんのご指摘箇所を修正すればタスクに登録されましたよ。(コード書いて実行してみました)
>>
> 魔界の仮面弁士さん、やじゅさん、よねKENさん
> 回答ありがとうございます。
> 記述ミスが多いにも関わらず回答頂きまして、本当にありがとうございました。

解決したのであればそれで結構なのですが、できればどのように解決したのか
書いていただけるとありがたいです。
もちろん強制ではないので、できればでかまいません。

スレ主さん以外にも同様な疑問で悩んでいる方がいらっしゃるかもしれませんし
そういった方が再度このスレッドを見たときに「こうすればいいのか!」と悩みの
解決になるような資料として残しておきたいです。
そういった点では質問を書き込んだ時点で、その質問はスレ主さんだけのものでは
なくなっているとも言えるかもしれません。なので、自分が解決したからそれでOK
ではなく、後々誰かの役に立てるように解決方法を書いておいていただけると
ありがたいです。
(今回の件では、魔界の仮面弁士さんの回答をよねKENさんが実証していただいたという認識です)
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -