【.cmd】 バッチファイルスクリプト %15 【.bat】at TECH【.cmd】 バッチファイルスクリプト %15 【.bat】 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト643:デフォルトの名無しさん 24/12/19 08:07:25.40 i8S4J+Do.net 無限増殖.bat @echo off start "%~f0" start "%~f0" 644:デフォルトの名無しさん 24/12/19 18:24:35.68 9yUs11tl.net set /pコマンドに空欄のままエンターを押すと強制終了してしまうのですがどうしたらいいでしょうか set InputPath=%InputPath:"=% をコメントアウトすれば空欄での強制終了は回避できるのですが 今度は""で括られたパスを入力すると強制終了してしまいます @echo off set /p InputPath= set InputPath=%InputPath:"=% if "%InputPath%"=="" ( set msg=空欄だよ ) else if exist "%InputPath%\" ( set msg=フォルダだよ ) else if exist "%InputPath%" ( set msg=ファイルだよ ) else ( set msg=不明だよ ) echo %msg% pause 645:デフォルトの名無しさん 24/12/20 00:11:16.18 TH9BF58b.net >>644 これでbatそのまま?(処理を抜き出したもので元々はループさせたりしてない?) またpuaseを付けるところを見るにダブルクリックとかで実行? コマンドプロンプトで複数回実行したりしてない? まあ説明すると 入力でそのままエンターすると変数にヌル文字が入るわけじゃなくて変数の入力自体をしない つまり、以前に定義されてた値があればそれがそのまま入ったままだし 未定義なら未定義のままとなる ループさせるとかなら変数の初期化をするのがいい set InputPath= (これでInputPathは未定義となる) if not defiend InputPath echo msg=空欄だよ まあ未定義なら if "%InputPath%"=="" ( set msg=空欄だよ のままでちゃんと「空欄だよ」となるはずだから直す必要は無いけど それと set InputPath=%InputPath:"=% → set "InputPath=%InputPath:"=%" としないと、入力に a&b などと入れられると問題となる 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch