1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

このバッチは、ダブルクリックで起動されたか、コンソールから起動されたか、分かるよ!=>うそでした!

Last updated at Posted at 2023-07-25

バッチがどうやって起動されたか知りたくないですか?

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 どうやって起動ましたか?
)
1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?