数十台のマシンに配布する予定のバッチファイルを作成しました。複数のデバイスの動作状態を自動的にチェックします。最近、スクリプトの最初に「メニュー」を追加し、リストからクエリする特定のアイテムを選択するようユーザーに求めました。ただし、リストが長すぎるため、スクロールしないと表示できません。
リストを調整するのではなく、Windowsシェルを最大化して起動するために、何がバッチに追加できますか?私はRight click the .bat -> Properties -> Change the "Run" state to "Maximized"
をだまそうとしましたが、このオプションは存在しません(そして率直に言って、この機能をスクリプト自体に追加したいと思います)。
スクリプトを実行しているマシンはWindows 7を実行しています
start /MAX yourscript.bat
を試して、最大化されたコマンドでスクリプトを開始できます(Windows 7まで)
編集(リックによる):
1つのバッチファイルですべてを実行する方法を示す小さな例を作成しました
(別個のランチャーなし):
@echo off
if not "%1" == "max" start /MAX cmd /c %0 max & exit/b
:: here comes the rest of your batch-file
echo "test"
pause
最大化されたバージョンを開始する前に、元のバッチファイル(すぐに終了します)にわずかなちらつきがあります。
簡単な説明:
パラメータmax
を使用してバッチが呼び出されない場合、再度それ自体を呼び出し(%0
)、今回はstart /max
の助けを借りて最大化し、パラメータmax
を使用すると、2回目に呼び出されたときにifステートメントがスキップされ、コマンドが続行されます。
壊す:
if not "%1" == "max"
%1
が「max」でない場合にのみ、次のコマンドを実行します。 %1
は、バッチファイルに指定された最初のパラメータを表します。したがって、my_batch.bat max
の%1
変数にはmax
が含まれます。 max
パラメーターを指定してバッチを開始しなかった場合は、この行を実行する必要があります。start /MAX
最大化された形式で、その後にコマンドを開始します。cmd /c
実行cmd.exe
および/c
は後で終了することを意味します。%0 max
。 %0
は独自のバッチファイル名を表し、ここでmax
は最初のパラメーターです。つまり、最初のif
- lineをスキップする必要があります。そうしないと、ループに巻き込まれます:)& exit/b
:&
は、前のコマンドと同時に次のコマンドを実行することを意味します。つまり、start /max your batchfile
を実行し、その間に現在のバッチを終了します。これは、max
以外のパラメーターを使用してthis versionを呼び出すことができないことも意味します。バッチファイルを開始するためにパラメーターが必要な場合は、さらにマジックを実行する必要があります(テスト後に%1をshift
ingするなど)。
その場合はお知らせください。
実行中にコマンドプロンプトを最大化できますが、次の2つの追加スクリプトが必要になります。 windowMode および getCmdPid.bat :
@echo off
call getCmdPid
call windowMode -pid %errorlevel% -mode maximized
some commands