Windows 7 のショートカット/リンクで CMD コマンド リダイレクト (パイプ) を使用できますか?

Windows 7 のショートカット/リンクで CMD コマンド リダイレクト (パイプ) を使用できますか?

自動起動のショートカット/リンク (.lnk) を使用して、システムの起動時に Python 3 スクリプトをサイレントに実行したいと思います。

Python の pythonw.exe は、stdout と stderr をどこかにパイプする場合にのみ、私のスクリプトでウィンドウなしのプロセスとして実行されますpythonw script.pyw >nul 2>&1。これは CMD からは機能します。

Windows リンク ターゲットとして指定すると機能しません。これは に自動的に展開されますc:\Python34\pythonw.exe script.pyw >nul 2>&1。コマンドを囲む二重引用符は自動的に削除されます。pythonw.exe プロセスは、リンクの実行時にのみ短時間実行されます。

答え1

私はそれをうまく機能させた

C:\Windows\system32\CMD.exe /C start /B pythonw.exe script.pyw >nul 2>&1

実行すると、CMD ウィンドウが短時間表示されます。CMD パイプ演算子は Windows リンク「メカニズム」によって解釈されず、引数/オプションとしてプログラムに送信されるようです。これは、実際に /C で CMD を実行して START コマンドを渡し、pythonw を別のプロセスとして実行することで解決されます。

参考文献:

関連情報