バッチがどうやって起動されたか知りたくないですか?
2023/7/28環境変数SESSIONNAMEが分からなくなりました。
バッチをファイルサーバに置いて、ダブルクリックするとSESSIONNAMEはブランクにならずにConsoleになることが分かりました。
ローカルドライブや、one driveにあるバッチのダブルクリック起動の場合は、ブランクです。
いったい、どんな基準で、この変数に値が入るのかわからないので、この書き込みは信じないでください。
とはいえ、ローカルでテストしている時は便利なんですが・・・。
(2023/7/26タイトルと内容を少し変更しました。)
それが分かるだけです。(^^ゞ
たまたま、環境変数SESSIONNAMEってなんだ?と思って調べてみました。
バッチの魅力って、
1.何もインストールせずに動く。
2.ダブルクリックでも起動できる。
と思ってます。
ダブルクリックでバッチを起動したら、画面を残したいからpause入れることないですか?
でも、コンソールからコマンド起動したときはpauseが邪魔。
そんな時、起動方法を判定してpauseを入れることができます。
終了の手前に、以下を入れるだけ。
if "%SESSIONNAME%"=="" pause
リモート起動は出来なかったので、その部分はテストしてませんが、こんな感じでした。
@echo off
if "%SESSIONNAME%"=="" (
echo バッチファイルをダブルクリックして起動しました。
pause
) else if "%SESSIONNAME%"=="Console" (
echo コマンドコンソールから起動しました。
) else if "%SESSIONNAME:~0,4%"=="RDP-" (
echo リモートで、起動しました。
) else (
echo SESSIONNAMEが「%SESSIONNAME%」です。
echo どうやって起動ましたか?
)