ホンダ ジェイド250

Waste Days

バイクとPCと時々のぎ

set /p num=”1~3の中から選択 (1/2/3)”
などとして入力した数字に応じて実行を分岐したいが
もし数字ではなくただenterキーを押すとどうなるか?
%num%の中身が空になるのでそのまま実行されるのかと思いきや
空文字の場合はその変数自体が無くなることを意味するので

set /p num="1~3の中から選択 (1/2/3)"
if %num% == 1 (
	set destDir="%dest1%"
) else if %num% == 2 (
	set destDir="%dest2%"
) else if %num% == 3 (
	set destDir="%dest3%"
) else (
	goto syoriend
)
goto files

:files
echo %num%が入力されました。

:syoriend
Pause
ENDLOCAL
Exit /b 0

これを実行し1~3を押さずただenterを押すとバッチが不正な処理として強制終了してしまう(:syoriendのpauseまで到達せず)
numという変数自体が無いのだからその下の条件式も if == 1 とか if == 2 として認識されてしまうのだ
じゃあどうするかというとnumの中身が空かどうか確認する条件式として以下を追加する
if %num%_v == _v
これだとnumが空の場合は _v == _v となるので等号が成立する
但し追加する場所は工夫する必要がある

set /p num="1~3の中から選択 (1/2/3)"
if %num% == 1 (
	set destDir="%dest1%"
) else if %num% == 2 (
	set destDir="%dest2%"
) else if %num% == 3 (
	set destDir="%dest3%"
) else if %num%_v == _v (
	goto syoriend
)
goto files

これはNGで最初の if %num% == 1 の部分で先程言った通り強制終了する
正しくは

set /p num="1~3の中から選択 (1/2/3)"
if %num%_v == _v ( goto syoriend )
if %num% == 1 (
	set destDir="%dest1%"
) else if %num% == 2 (
	set destDir="%dest2%"
) else if %num% == 3 (
	set destDir="%dest3%"
) else (
	goto syoriend
)
goto files

set /p コマンドのすぐ後に if %num%_v == _v で確認を行うと強制終了せずにバッチが完走する



コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください


2025年4月
 12345
6789101112
13141516171819
20212223242526
27282930  

archives

  • 2026 (3)
  • 2025 (39)
  • 2024 (29)
  • 2023 (15)
  • 2022 (19)
  • 2021 (15)
  • 2020 (16)
  • 2019 (13)
  • 2018 (21)
  • 2017 (40)
  • 2016 (118)
  • 2015 (53)
  • 2014 (31)
  • 2013 (14)
  • 2012 (59)
  • 2011 (89)
  • 2010 (65)
  • 2009 (97)
  • 2008 (22)

Avisynth aviutl BDAV BitLocker BonDriverProxyEx CentOS Collapsing Categories cppcryptfs EDCB FAW2AAC Firefox GoogleDrive HDMIキャプチャ openSUSE pCloud Python Raspberry Pi 2 Rclone Techism TvRock TVTest Ubuntu Windows 7 Windows 8.1 Windows 10 Windows10 WordPress WordPressテーマ x264 XFREE グラディウス2 ゲーム攻略 セキュリティ セキュリティソフト ドライバ関連 バッチファイル 乃木坂46 乃木坂46時間TV 卒業 坂道シリーズ 小粋空間 日記 桜井玲香 橋本奈々未 選抜発表