• 締切済み

コマンドプロンプトIF条件文について

コマンドプロンプトにて if条件文を作成したいと考えています。 ~~~~~~~~~~~~~~~~~~~~~~~~~ @echo off set /P return= IF "%return%" =="hi" ( GOTO NEXT ) ELSE ( EXIT ) :NEXT ECHO aiueo ~~~~~~~~~~~~~~~~~~~~~~~~~ にて hi と入力すると aiueo が出力されます。 この hi の部分をワイルドカードに指定したいと思います。 どのような形をとればよろしいのでしょうか? よろしくお願いします。

みんなの回答

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

>hi の部分をワイルドカードに指定したいと思います。 とはどういう意味ですか? * にしたいということであれば "%return%" =="*" でいいですが・

関連するQ&A

  • コマンドプロンプトの条件分岐について

    コマンドプロンプトで以下の処理を作成したのですが、 二つ目の「if exist」が動作しません。 何か間違っているのでしょうか? ------------------------------------------------------------- if exist "C:XXX" ( goto TEST ) else goto END :TEST if exist "C:XXX" ( goto TEST2 ) else goto END :PTT goto END :END ------------------------------------------------------------- よろしくお願いします。

  • コマンドプロンプトの条件分岐について

    こんばんわ。 ちょっとした処理をbatファイルにまとめて実行しようとしているのですが コマンドプロンプトにはあまり馴染みが無い為、条件分岐処理のIfで納得が いかず、よく分からなかったのでこちらの有識者にご教授願いたいと思い 質問させて頂きました。 Cドライブ直下にtestというフォルダが存在するかしないかをEXISTで判定 してあれば「aaaa」、なければ「bbbb」という文字列をECHOを使ってプロン プトに表示するという至極単純なプログラムです。 if exist "C:\test\" goto testa if not exist "C:\test\" goto testb :testa echo aaaaa goto end :testb echo bbbbb :end pause exit /b 上記、プログラムをテキストファイルに保存後、拡張子をbatに変更して 実行すると、正しく「aaaa」と表示されます。 (C直下にtestフォルダがある前提で、なければ「bbbb」が表示されます。) しかし、最初の2行のIfを変更すると動作がおかしくなります。 変更後のIf if exist "C:\test\" goto testa else goto testb もしくは if exist "C:\test\" goto testa else goto testb この状態でC直下のtestフォルダを削除して実行すると「bbbb」が 表示されると思っていたのに「aaaa」が表示されてしまいます。 これは何故なんでしょうか?

  • if文について

    cshで書いています。 if文がとおりません。。。 0: Event not found. このようなメッセージが出力されます。 if ($flg == "xxx") then echo "aaa" else if($flg == "yyy") then echo "bbb" exit else echo "ccc" exit endif 内容は上記のような感じです。 どなたか教えて下さい。

  • コマンドプロンプトのスクリプトの意味がわかりません

    こんにちは。コマンドプロンプトの意味がわかりません。お教え頂けませんでしょうか? http://bgworks.info/blog/2007/01/echo_type.html @echo off setlocal set o=a.log if "%~1"=="" exit /b cd %1 || exit /b if exist %o% del %o% for /r %%a in (*.txt *.htm*) do >> "%~1\%o%" (echo %%a && type "%%a") endlocal 調べてみて、if exist %o% del %o%までは理解ができました。 次の行の、forループで再帰的に何かをやるところまではわかりましたが、そこからがよくわかりません・・・ ご解説お願い致します!

  • DOSのIF文でつまづいています

    DOSのプログラムでつまづいています。 test.batの中身 ************************************************ if %1==start goto start else if %1==stop goto stop else goto error :start rem スタート処理 echo start%1 > test.txt :stop rem ストップ処理 echo stop%1 > test.txt :error rem エラー処理 echo error%1 > test.txt exit ************************************************* うまく処理できる方法を教えてください。

  • MS-DOSの起動ディスクでループする?

    どうにもいきづまってしまいましたのでお力を貸して下さい。 WindowsXPからMS-DOSの起動ディスクをフロッピーディスクで作成してAUTOEXEC.BATに下のように書いたのですがメニューから入力するところで止まらずうまくいきません。 Windowsのコマンドプロンプト上ではうまくいくのですが、調べてみたらコマンドプロンプトとMS-DOSが別ものということはわかったのですがどのように直していいかわかりません。 すみませんがご教授いただけないでしょうかよろしくお願いします。 環境 OS:Windows XP Pro PC:NEC VersaPro :Main cls @echo off rem メニュー echo キー入力後、エンターで決定して下さい echo [0] 処理 echo [E] 終了 rem 入力値の取得 set /p input= if defined input set input=%input:"=% rem 入力値判断 if /i "%input%" == "0" (goto KAKUNIN) if /i "%input%" == "E" (goto exit) else goto Main goto main :KAKUNIN cls echo 処理をしていいですか? Y/N set /p input= if defined input set input=%input:"=% if /i "%input%" == "Y" (goto SYORI) if /i "%input%" == "N" (goto Main) else goto KAKUNIN :SYORI 処理をする pause :exit

  • コマンドプロンプトで組まれたPC利用制限プログラムを使っているのですが

    コマンドプロンプトで組まれたPC利用制限プログラムを使っているのですが、 改良したいと思う点がありましたので、質問させていただきます。 こちらのプログラムの内容は if %TODAY% LEQ 20100219 goto SOTO(この日にちから) if %TODAY% LEQ 20100221 goto DOWN(この日にちまで) の指定された時間の間は、パソコンが立ち上げられても 即時にシャットダウンがなされるように仕組まれています。 この指定の時間を日にちまでではなく、 何時何秒まで指定させたいのです; どうかタスク、プロンプト、batファイルに詳しい方が いらっしゃいましたらどうかお願いします。 m(_ _)m また、このプログラムはこちらから拝借させて頂きました;(引用という形で) http://oshiete1.goo.ne.jp/qa3585047.html ----------------------------以下がそのプログラムです--------------------------------- @echo off color 5f for /F "tokens=1,2,3 delims=/, " %%i in ('date /t') do set TODAY=%%i%%j%%k echo %TODAY% if %TODAY% LEQ 20100219 goto SOTO if %TODAY% LEQ 20100221 goto DOWN color 1f echo お疲れさん!で、どうよ?聞くのも野暮? goto OWARI :DOWN shutdown.exe -s -t 01 :SOTO color 3f echo PC規制期間外です。存分にお楽しみ(?)下さい echo ..... :OWARI

  • BATのIF文について質問

    @echo off cls set LOGFILE=C:\%COMPUTERNAME%.log find C:\temp\setting.txt "SERVER01" /I if %ERRORLEVEL% == 1 GOTO END if %ERRORLEVEL% == 0 ( set MESSAGE=SEVER01の環境です echo %MESSAGE% echo %MESSAGE% >> %LOGFILE% GOTO SET1 ) :SET1 echo テスト >> %LOGFILE% :END こんな簡単なBATを作成してみましたがERRORLEVELが0の時処理されません (「SEVER01の環境です」がLOGに書き込まれません) (もちろんsetting.txtには「SERVER01」の文字が入ってます) (FINDのあと、「echo %errorlevel」を記述して0にもなっているのですが) IFの構文として間違っていますか?どなたかご教授ください。 OSはWindowsXP SP3 64Bitです。

  • コマンドプロンプトの質問です。

    コマンドプロンプトの質問です。 EndLocalコマンドは無くても大丈夫なのですか? 図書などには、SetLocalコマンドの効果は、「バッチフィルの終わりまで」と書いてあります。と言うことは、これら2つのコマンドを入れ子で使う場合以外、褒められたことではありませんが、余り神経を使わなくてもよいのでしょうか?バッチファイルの先頭と最後に習慣的に記載していますが、 if の中に簡単に goto :EOF を書き、EndLocalコマンドを実行しないでバッチ処理を終わっています。終ると決めたら、EndLocalコマンドを実行後goto :EOFを実行するべきなのでしょうが、面倒なので横着をしています。 後で心配になり時々Setコマンドで調べてもローカル変数のつもりで設定した変数は残っていないので、大丈夫なのだろうと思っているのですが、気になります。 皆さんは、どうしていますか?

  • コマンドプロンプトの条件文について

    コマンドプロンプトでフォルダを作成する バッチを作っています。 コマンドは以下の内容となります。 forder.txtの内容を読み込み、その中にある内容で Cドライブの直下にフォルダを作成しています。 ただしABCDEという内容は除く。 ------------------------------------------------------- set BASE="C:\" for /F %%F in (forder.txt) do ( if not "%%F"=="ABCDE" mkdir ""%BASE%"%%F" ) ------------------------------------------------------- そこで1つ質問なのですが、 この条件分岐をOR条件にしたいのです。 ABCDEだけでなく、先頭がZから始まるレコードも除外したのです。 この場合、どのようにしたら良いのでしょうか? アドバイス頂けませんか? お願い致します。