Windows XPの後、私は常に以下のトリックを使用して、Windowsタスクマネージャーで最小化されたバッチファイルを開始します。
http://www.pcreview.co.uk/forums/running-bat-files-minimized-scheduler-t2125918.html :
「前提条件:すべてのバッチファイルには、アクションを終了するexitコマンドがあります。終了しない場合は、コマンドプロンプトが点滅して終了します。
これは私が使用し続けているものです:
%comspec% /c start /min "C:\Scripts\Destination_inbound_ftp5.bat"
これをプロパティに保存すると、これらすべてがパラメーターであるかどうかを尋ねるダイアログが表示されます。いいえと答えると、タスクは期待どおりに保存されます。
スタックオーバーフローの質問「start%comspec%/ c script.cmd」vs「start cmd/C second.cmd script.cmd」、 "%comspec%"ステートメントを "C:\ Windows\system32\cmd.exe"に置き換えましたが、それでも何も変わりませんでした。
問題は、最小化された実行中のbatファイルの代わりに、最小化されたコマンドプロンプトだけになりますが、バッチコマンドは実行されないことです。タスクスケジューラのステータスは「実行中」のままです:(
Windows 8(64ビット)でこれを行うにはどうすればよいですか? PowerShellの代わりに旧式のバッチコマンドで好む(またはもっと悪い; p)
開始コマンドには、タイトル機能を無効にするために、先頭の""
引用符が必要です。これをスケジュールしてみてください:
%comspec% /c start "" /min "C:\Scripts\Destination_inbound_ftp5.bat"
Windows 8がWindows 7と同じであると仮定すると、「終了」はバッチファイルを終了するだけです(とにかくこれを行います)。
次のような終了コードを追加する必要があります。
「プログラム/スクリプト」の下:
CMD(またはcommand.exe、または%comspec%)
「引数:
/c start "Title" /min "C:\Scripts\Destination_inbound_ftp5.bat" ^& exit
コマンドウィンドウがポップアップして消えてしまうのが気に入らなかったので、 https://ss64.com/vb/run.html ...
最初に作成invisible.vbs
次の1行のテキスト:
CreateObject("Wscript.Shell").Run """" & WScript.Arguments(0) & """", 0, False
次に、最後に、次の方法でcmdまたはバッチファイルを起動します。
%SystemRoot%\system32\wscript.exe "invisible.vbs" "myscript.cmd" //nologo
タダ!この種のスクリプトは長い間Windowsに組み込まれてきました。興味がある場合は、「WSH」(Windowsスクリプトホスト)をWeb検索してください。このようなスクリプトは、JScriptと呼ばれるJavaScriptの方言で作成することもできます。
別の可能性: [〜#〜] cmdh [〜#〜] という名前の小さなフリーウェアプログラムは、単にバックグラウンドで要求された注文を実行します。例えば:
cmdh MyScript.cmd
スクリプトに「終了」を追加する必要はありません。 Windowsでの動作テスト済みXPSP3。Windows8で失敗する理由はありません。
https://ss64.com/vb/run.html からのソリューションは、最小化されたウィンドウでバッチファイルを実行します。 start
コマンドと/min
を使用する他のソリューションとは異なり、これは画面に新しいウィンドウをフラッシュしたり、フォーカスを盗んだり、フルスクリーンアクティビティを中断したりしません。
まず、次の1行のテキストでrun_minimized.vbs
という名前のファイルを作成します。
CreateObject("Wscript.Shell").Run """" & WScript.Arguments(0) & """", 2, False
次に、これらの引数を使用してプログラムwscript.exe
を開始するアクションを持つタスクスケジューラタスクを作成します。
"c:\path\run_minimized.vbs" "c:\path\my script.bat"
必要に応じてパスを変更して、2つのファイルの場所を指定します。
Wscriptは引数から引用符を削除するため、スペースと引用符を保持しながら、タスクスケジューラからバッチファイルに引数を渡す簡単な方法はありません。スペースを含む引数を処理する最も簡単な方法は、バッチファイルコマンド全体をvbsに入れることです。
CreateObject("Wscript.Shell").Run """c:\path\my script.bat"" ""arg 1"" arg2", 2, False
引用符の使用に注意してください。コマンド文字列全体を囲む1組の引用符"
と、コマンドラインで通常の引用符を使用するすべての場所に隣接する1組の隣接する引用符""
があります。