win98でのバッチファイルのif文の分岐条件部分でエラーが出る

このQ&Aのポイント
  • win98上で作成したバッチファイルのif文の分岐条件部分でエラーが発生し、正常に動作しません。
  • 具体的なエラーメッセージは「コマンドまたはファイル名が違います」と表示されます。
  • else文が正しく認識されず、期待した動作をしないため、困っています。
回答を見る
  • ベストアンサー

win98でのバッチファイルの挙動

初めて質問させて頂きます。 win98上にて、あるバッチファイルを作っているのですが、if文の分岐条件部分でエラーが出てうまく動きません。あまりに単純で質問するのもはばかられたのですが、他に参考になるサイトを見つけることができず、やむなく質問させていただきました。 以下のバッチファイル(test.dat)をデスクトップ上でダブルクリックにて実行。 --------------------------- if exist "C:\work\" ( cd C:\work ) else ( echo: echo C:\workが存在しません。 ) ----------------------------- 以下実行結果 ----------------------------- C:\WINDOWS\デスクトップ> C:\WINDOWS\デスクトップ>if exist "C:\work\" ( C:\WINDOWS\デスクトップ> cd C:\work C:\work>) else ( コマンドまたはファイル名が違います. C:\work> echo: C:\work> echo C:\workが存在しません。 C:\workが存在しません。 C:\work>) コマンドまたはファイル名が違います. C:\work> ------------------------------- なぜelseを認識してくれないのでしょうか? 本当に困っております。どうぞよろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • OsieteG00
  • ベストアンサー率35% (777/2173)
回答No.1

elseはWin2000などのNT系でコマンドプロンプトが拡張された際に実装された仕様だった気がしますので、Win98では使用できないかもしれません。 if exist "C:\work\" goto eee echo echo C:\workが存在しません。 goto end :eee cd C:\work ~ :end

関連するQ&A

  • バッチファイルの組み方について

    パソコンの起動と同時に不要なファイルを自動的に削除したいと思い、バッチファイルを組みたいのですが、分からない点があるのです。 今、 C:\Windows\Temp\*.tmp と C:\Program Files\Trend Micro\Virus Buster 2002\temp\*.tmp の2カ所に存在するtempファイルの削除をバッチファイルを組んで行いたいのです。 一つの時(上段1つの時)は autoexe.batに if exist c:\windows\temp\*.tmp del \windows\temp\*.tmp と命令文を入れて、上手くいっていたのですが、2カ所にある時の組み方が分かりません。 具体的にどの様にすれば、上手くいくでしょうか? if exist C:\Program Files\Trend Micro\Virus Buster 2002\temp\*.tmp del C:\Program Files\Trend Micro\Virus Buster 2002\temp\*.tmp ともう一行実行文を入れた場合は上手くいきませんでした。 ご存じの方、よろしくお願いいたします。

  • バッチファイルで環境変数が設定されません

    よろしくお願いいたします。 Windows XP Pro の command.com において、バッチファイルの中で set コマンドを使って環境変数を設定しても、バッチから抜けると環境変数の設定ができていません。 バッチ終了後の環境変数は全てバッチ開始前と同じ状態です。 command.com のプロンプトで set コマンドを実行すると、環境変数はセットした内容に変化もしくは追加されます。 cmd.exe ではバッチからでもプロンプトからでも set コマンドで環境変数を操作できます。 なぜ command.com 上のバッチから操作できないのかわからず、不便でかないません。 アドバイスをよろしくお願いいたします。 @echo off set foo=word path=c:\ echo %foo% echo %path% 上記バッチを実行すると word c:\ と表示されますが、set コマンドで確認すると FOO は存在しません PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;... と表示されます。 これはバッチ実行前の値です。

  • Win2000 バッチファイルについて

    こんにちは、 Win2000の環境で下記のバッチがうまく動作できません、”FIND:パラメータ書式が間違います”というエラーが出ています、ほかの2003,2008ではそういう現象が出ていません。 なぜでしょうか? そこの”^|”の”^”を消したとしても無理のようです。 ■簡単にバッチファイルが存在する領域の使用容量を算出するバッチファイルです。(一時ファイルの生成は利用しない、Findコマンドだけを使うという前提で) ソース: @echo off for /F "tokens=3" %%s in ('dir /s/-c ^| find "個のファイル"') do Set s=%%s echo %s% 分かって頂ければご教授ください。 誠にありがとうございます~~。

  • バッチファイルの見方について教えて下さい。

    バッチファイルを選択⇒右クリック⇒編集とすると テキストが表示されるのですが、 どういう事を書いてるのかよくわかりません。 解る方、教えて下さい。宜しくお願いします。 【pingnum.batの時】 ping 198.105.232.1 ping 198.105.232.6 @echo off echo ... echo Click the Help window to continue with the Internet troubleshooter. 実行するとdos画面でPingが実行されるのですが @echo offから下の部分はどういった意味でしょうか? echo Click the Help window to continue with the Internet は単なるメッセージ?かと思うのですが・・・。 また、下記についてもお願いします。 copyコマンドで指定したファイルを他のドライブに パスをきる時は、\\を付け加える?? A>TYPE BACK.BAT ECHO OFF CLS ECHO バックアップ ECHO ON XCOPY C:\WINDOWS\デスクトップ\コピー元\data\* C:\WINDOWS\デスクトップ\コピー先\data /E/C/H/R/Y ECHO OFF ECHO 完了しました

  • For文のtokensにおけるバッチファイル作成について

    はじめまして。 バッチファイルにて以下のコマンドを作成して 実行したのですがきちんと実行されません。 コマンドプロンプトを起動して1個1個実行するときちんと 実行されます。どういうことなのでしょうか? <バッチファイル> @echo off cd /d デスクトップ for /F "tokens=2" %i in ( file.txt ) do echo %i >> result.txt pause <file.txtの中身> 1<tab>2<tab>3 4<tab>5<tab>6

  • バッチファイル

    バッチファイルで cd C:\MYDOCU~1\TEST dir の2行を実行するようにしたつもりですが カレントでdirされました。 現在のバッチは @ECHO OFF cd C:\MYDOCU~1\TEST dir なんですが、どこを直せばよいですか?

  • バッチファイルのディレクトリ内のファイル検索について

    バッチファイルのディレクトリ内のファイル検索について お世話になります。 現在カレントに6つのディレクトリとバッチがあります。 バッチを叩くと指定ディレクトリのmakeファイルというファイルを実行するようにしています。 ですが構成を変えまして、サブディレクトリのmakeファイルも実行出来るように変更したいと思っています。 どのようにすればよろしいでしょうか? 以下が現在のソースです。 @echo off setlocal enabledelayedexpansion set DIRS=libSrc clientSrc serverSrc for /d %%a in (%DIRS%) do ( cd %%a cd if EXIST makefile.mak ( make %* ) else ( if EXIST Integ.bat ( call Integ.bat %* ) ) cd ..\ ) endlocal フォルダ構成は bin clientSrc include lib libSrc serverSrc となっており、makeファイルはclientSrc、libSrc、serverSrcにあります。 そこでlibSrcだけ新たにフォルダを2つ作成し、そのフォルダの中のmakeファイルも拾えるようにしたいです。 よろしくお願いします。 bin clientSrc ---- makeファイル include lib libSrc ----|--- myLib ----- makeファイル |--- socketLib --- makeファイル serverSrc---makeファイル batファイル

  • バッチ(bat)の作り方を教えてください

    今、特定フォルダ内にあるファイル3つが存在すればコマンドを実行し、無ければ4時までループさせるといったことをバッチでしたいと考えております。 イメージは以下の通りです。 D:\a.txt,D:\b.txt,D:\c.txt バッチを1時から動かして、上記3つが揃えば、そこからコマンドを実行しバッチは終了 もしなければ10分置きにファイルをチェックし、4時を過ぎればバッチを終了(コマンドを実行させない)ということをしたいです。 コマンドは何でも良いので例えば「echo HELLO」とでもしておきます。 よろしくお願いいたします。

  • バッチでファイルの読み込み

    Windowsバッチでファイルの読み込みをしようと思っているのですが、 下記コマンドの実行で「ファイルが見つかりません」となります。 ※パスにスペースを含むのでusebackqを使用しました。 FOR /F "usebackq tokens=1,2 delims= " %%i in ("c:\temp 1\data.txt") DO echo %%i WindowsServer2003でうまくいかなかったのですが、 Xpですれば問題なくファイルを読み込めました。 何か差があるのでしょうか?

  • バッチファイルの使い方

    複数のフォルダの中にそれぞれいろんなファイルが入ってるとして、 別の1つフォルダやもともとファイルの入っていたフォルダの1つに一括の操作でファイルを集めるフリーツールはありますか? 同じファイル名のファイルがある場合は、(2)などで自動でリネームしてファイルを移動するかもとのフォルダに残すかどちらでもいいです。よろしくお願いします。 という質問に対し ----- ここから set $dist=c:\tmp set $logfile=%$dist%\log.txt for /r %%i in (*) do ( if exist "%$dist%\%%~nxi" ( echo 同じファイルが存在 echo %%i >> "%$logfile%" ) else move "%%i" "%$dist%\" ) set $logfile= set $dist= ---- ここまで 移動先は $dist で定義する。 同じファイルがあったときは移動しない。$logfile で定義したファイルに移動しなかったファイル名が残る。 移動元の一番上のディレクトリで実行する。 (後に別の方から「$dist->$dest」という返信もついていました) と回答があったのですが、具体的にどのように実行すればいいのでしょうか? テキストに「set~$dist=」まで貼り付けたのですが、どのような拡張子にすればいいのか、DOSプロンプトでどのように指定や実行をすればいいのか教えてほしいです。OSはVISTAです。お願いします。

専門家に質問してみよう