出産前後の痔にはご注意!

DOSコマンドの「pause」について質問です。
-- test1.bat
pause
echo ああああ
pause
--
このようなバッチファイルを実行したときに
2つ目のpauseでは処理ストップしないようです。

# 3つ目を追加すると同様の動作をするようです。
# -- test2.bat
# pause
# echo ああああ
# pause > NUL
# pause
# --

これってpauseコマンドのバグでしょうか?

A 回答 (4件)

おそらく、空白やEnterや英字でなく、カーソルキーとかファンクションキーなどを押したのでしょう。

それらのキーではキーコードが2バイトなのでPAUSEコマンドを2つ分前に進めてしまいます。

バグかと言うと難しいですが、「限りなくバグに近い仕様」という所でしょうか。
    • good
    • 1
この回答へのお礼

notnotさん、ありがとうございます。

ビンゴでした。バッチ実行後、
「続行するには何かキーを押してください...」と
押されたとき、十字キーの下を押していました。

回答いただいた他の皆さんも含め、
大変お世話になりました。

お礼日時:2007/01/28 21:18

ANo.1 です。



Windows XP Home SP2 もいじれたので試してみましたが、
まったく同様に 2番目 Pause も効きました。

BATchファイル中に変な文字とか入ってませんかね...
もしくは
command.exe (か cmd.exe ? )が壊れてるかも?
    • good
    • 0
この回答へのお礼

saru_1234さん、ありがとうございます。

バッチ内に変な文字は入っていませんでした。

フリーのテキストエディタで作成していたので
一応、バイナリエディタも見てみましたが
改行(0D0A)が入っていました。

お礼日時:2007/01/28 21:15

ウチでも正常に動いたね。


WindowsXP Professional SP2
    • good
    • 0
この回答へのお礼

koko_uさん、ありがとうございます。

環境により正常動作するんですね。

お礼日時:2007/01/28 14:12

変ですね。

Windows2000 Pro SP4 では
cmd と command の両方とも、
2番目、3番目でも pause の箇所でポーズしましたけど...

お使いのOSは何でしょうか?
    • good
    • 0
この回答へのお礼

saru_1234さん、回答ありがとうございます。

OSはWindowsXP Home SP2です。

お礼日時:2007/01/28 13:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qbatである文字列内に特定の文字列が含まれているか確認したい

batファイルの中である変数「abc」の中に「test」という文字が含まれていたら○○を行なうという分岐を作成したいのですが、どのように行なえばよいのでしょうか?

そのまま、ずばりのお答えお待ちしております。

よろしくお願い致します。

Aベストアンサー

大文字小文字を区別しなくていいなら、

if not "%abc:test=%" == "%abc%" echo 含まれていた

区別するなら、

echo %abc% | find "test" >NUL
if not ERRORLEVEL 1 echo 含まれていた

Qバッチ処理でファイルの中身を変数に入れるやり方

あるファイルの中には1行の文字列があります。
このファイルをバッチで読み取り、変数に設定したいです。

例:
test.txt
abcacbacbacbacbacbacbacbacb

test,bat
set DATA=[test.txtを読み込んだ値]

よろしくお願い致します。

Aベストアンサー

これですね。

参考URL:http://www.upken.jp/kb/dqvgHNRUxwFDkmtoqEwfXHUjDrevNv.html

Qdosバッチ起動後、画面を閉じないようにしたい。

調査.batに1行type test.txtを表示するバッチを作成したのですが、すぐ画面がとじます。

dosバッチ起動後、コマンド画面を閉じないようにするには、次の行に何か書くのでしょうか。
宜しくお願いします。

Aベストアンサー

最後の行に
pause > nul
と加えてみてください。

何かキーを押すとウィンドウが閉じます。

Qバッチファイル 文字列にスペースがある場合

for /f %%A in ('dir /b /s c:\a aa*.pdf') do copy "%%A" D:\

これはcドライブのa aaというフォルダ名の中を検索するコードですが、
フォルダ名にスペースがあるため、うまく動きません。

"a aa"のように""で囲ってみましたが、駄目でした。

どうすれば良いのか、教えていただきたいので、お願いします。

Aベストアンサー

for /f %%A in ('dir /b /s c:\"a aa"\*.pdf') do echo copy "%%A" D:\
のようにecho でどのようなコマンドが実行されているか確認しましょう。

この記述ではdirコマンドで表示されるパスの中に空白があるため %%A には空白までの文字列しか代入されません。
以下のように修正して試してみてください。

for /f "delims=" %%A in ('dir /b /s c:\"a aa"\*.pdf') do copy "%%A" D:\

Qバッチファイル pause時の文字を表示したくない

バッチファイルでpauseコマンドで表示される「続行するには何かキーを押してください...」を出さない方法はあるでしょうか?

Aベストアンサー

pause > nul

としてみてください。

QコマンドプロンプトのERRORLEVELについて!

コマンドプロンプトの記述で、ERRORLEVELというのがありますが
そのERRORLEVELが、0の場合は正常終了と考えていいのでしょうか?

Aベストアンサー

>if not ERRORLEVEL 1 goto aaa
>教えていただいた上記記述なんですが、
>1じゃないということは、2~255も含まれるのではないのでしょうか?
>素朴な疑問ですいません。

if文の文法については、if /? で調べてください。

if ERRORLEVEL 1 goto aaa は、ERRORLEVEL が1以上の時にgoto aaaするという意味です。ということを#4の人が書いてるのですが・・・
従って、その否定である、
if not ERRORLEVEL 1 goto aaa は、ERRORLEVEL が1未満つまり0のときにgoto aaaします(負になることはないので)。

Qバッチでテキストファイルから任意の行のみ取得したい

batファイルを作成していて、
txtから特定の行のみをとりだし、変数に入れたいです。
どうもよくわからないので質問したいと思います。
まず以下の様なテキストファイルがあります。
-------------------
111
222
333
-------------------
実際の値、行数は違いますが、こんな感じに文字列が複数行並んでいます。

行いたい動作は、
-----------------------------------------
1.テキストファイルの1行目を変数Textに入れる(set Text=111)
2.変数Textを使用し色々処理をする
3.テキストファイルの2行目を変数Textに入れる(set Text=222)
4.変数Textを使用し色々処理をする
-----------------------------------------
コレを繰り返します。
2と4は同じ動作ですので、行数のカウンタを設定しループさせる予定です。
n行目を全て取り出す方法がわかれば行けると思うのですが、
どうも見つかりません。ご存知の方がいればお教え願いたいと思います。

batファイルを作成していて、
txtから特定の行のみをとりだし、変数に入れたいです。
どうもよくわからないので質問したいと思います。
まず以下の様なテキストファイルがあります。
-------------------
111
222
333
-------------------
実際の値、行数は違いますが、こんな感じに文字列が複数行並んでいます。

行いたい動作は、
-----------------------------------------
1.テキストファイルの1行目を変数Textに入れる(set Text=111)
2.変数Textを使用し色々処理をする
3.テキストファイルの2行目を変数T...続きを読む

Aベストアンサー

No3ですが、たぶん提示したスクリプトを見ると、ある事に気がつくはず?

findstr /n /r "." a.txt | findstr /r "^3:"

で3行目を表示してくれます。え!? それだけ。そうなんです

ただ、あと、先頭の”3:” をどうやって切り離すか? と言う問題にぶつかる。さらにファイルに先頭に”3:”があった場合、どうするのか? さらに、findstr の正規表現の動作が??? 表示すれるのはいいが、変数にどうやってセットするのか?

となる。結局 for 文を使いまわす事になります。

まあ、適当に改変して、上記の問題を解決してください。

Qバッチファイルで2つ以上の変数を連結し、1つの変数にしたい。

Windows2000でバッチファイルを作っています。
バッチファイルが受け取る2つのパラメータを %1 %2とすると、
それを連結して、新たな変数 A を作りたいのですが、どのようにすれば良いのでしょうか。

Aベストアンサー

SETで変数にパラメータをセットすればOKだと思います。

例)
SET A=%1%2
echo %A%

QDOSコマンドで、標準出力を出力しないようにするには?

Windowsのバッチファイルでコマンドを実行する際、標準出力をディスプレイに表示したくないのですが、どのようにするのが、一般的なのでしょうか?
CDで実行するので、ファイルに出力はしたくありません。
UNIXとかだと、nullにパイプするようなのですが…。

Aベストアンサー

>UNIXとかだと、nullにパイプするようなのですが…。

リダイレクトですね。

同様です。
標準出力だけなら「c:\> command > nul」
エラー出力もなら「c:\> command > nul 2>&1」

Qバッチファイルで改行の出力

バッチファイルで,改行のみをファイルに追記したいのですがどのようにすればできますか?
echo >> output.txt
とすると「ECHO は <OFF> です。」と出力されてしまいます.
全角を出力すれば見た目は同じですが,純粋に改行のみの出力方法をお願いします.

Aベストアンサー

下記のうちどれでも出来ます。

echo.>> output.txt
echo,>> output.txt
echo:>> output.txt
echo;>> output.txt


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング