0

私はバッチファイルを持っています: sample.bat 次のコードで:

@ECHO OFF

SET /a INT1=%1
SET /a INT2=%2

SET /a ANSWER=INT1*INT2

ECHO %ANSWER%

PAUSE

cmdSample.batまた、次のコードで別のバッチファイルを作成しました:

サンプル 2 4

したがって、cmdSample.bat ファイルを実行すると、正しい結果が得られます。

その後、次のように、そのバッチファイルを呼び出してコマンドを渡そうとした1つのWindowsサービスアプリケーションを作成しました:

private void DoWork()
    {
        try
        {
            string fname = @"C:\Users\of4\Desktop\sample.bat";
            string cmd = "sample 2 4";
            RunSampleBatch(fname, cmd);
        }
    }

    private void RunSampleBatch(string fname, string cmd)
    {
        Process p = new Process();
        p.StartInfo.FileName = fname;
        p.StartInfo.Arguments = cmd;
        p.Start();
    }

Windowsサービスアプリケーションを介してバッチファイルを実行できないのはなぜですか?

前もって感謝します..

4

1 に答える 1

0

パラメータがオフです。sample.bat の最初のパラメータとして「sample」を指定しています。

サービスがユーザー アカウントで実行されていない可能性があります。たぶん、ファイルにアクセスすることさえできません。

cmd.exe を使用してバッチファイルを開始する必要があります。ここで非常に良い説明を見つけることができます。

あなたは何をしようとしているのですか?Windows サービスからバッチ ファイルを実行してもあまり意味がありません。結果を確認することはできません。問題をデバッグするために、最初にコンソール アプリケーションを試す必要があるかもしれません。

次回は実際のエラーを投稿することもできます。上記はすべて当て推量にすぎないため、「機能しない」だけでなく、より多くの情報が必要です。

于 2013-04-04T06:18:44.757 に答える