Windows(95,98,NT,2000)上で作動するバッチファイルを作っています。
そこで、ユーザに、本当に処理を実行して良いか(y/n)で判断させるようなロジックにしたいのですが、判定させるコマンドがわかりません。
CHOICEコマンドも使ってみたのですが、CHOICEコマンドを実行させるためのCHOICE.comは、NT,2000には標準で無いらしいのです。
何か95,98,NT,2000に共通のコマンドがありましたら、教えて下さい!

このQ&Aに関連する最新のQ&A

A 回答 (2件)

例えば、BU(参考URL)と併用するとかはダメでしょうか。


他にも、バッチファイルをコンパイルしてCOMファイルにしてしまうアプリなんてのも…

参考URL:http://hp.vector.co.jp/authors/VA000007/bu.htm, http://hp.vector.co.jp/authors/VA000007/
    • good
    • 0

 PAUSE で代用はダメですかね?



ECHO 処理続行は何かキーを、中止する場合は CTRL + C を押して下さい。
PAUSE >NULL

 なんていうのはどうでしょう?
 参考URL から持ってきてみましたが。

参考URL:http://www25.cds.ne.jp/~kamiken/bach/b_urawaza.h …
    • good
    • 0

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

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

QNT4.0にてCHOICEコマンドに変わるもの

NT4.0にてCHOICEコマンドに変わるコマンドを探しています。当方はXP(pro)とNT4.0で動作するBATファイルを作ろうとおもったのですが、外部コマンドの為CHOICEコマンドが動作しません。代換になるコマンドがありましたら教えてください。会社のパソコンで実行するので無料のツールなどはなるべく使わない方向でお願いします。

Aベストアンサー

フリーソフトでよければ、VectorにNT系用Choiceがあります(下記URL)。
#2さんが、set /P を使ったものを書いてらっしゃいますが、set /P の機能はWin2000以降なので、NT4では使えません。フリーソフトを使わず、NT4とXPで共通のスクリプトにするなら、VBSを使うしかないですね。例えば、

echo WScript.Stderr.Write "Enter(Y/N):">tmp.vbs
echo WScript.Echo WScript.Stdin.ReadLine>>tmp.vbs
:ReEnter
set ANS=
for /f %%A in ('cscript //nologo tmp.vbs') do set ANS=%%A
if /i "%ANS%"=="Y" goto YES
if /i "%ANS%"=="N" goto NO
echo Input Error
goto ReEnter
:YES
Yの時の処理
.....
:NO
Nの時の処理
.....

参考URL:http://www.vector.co.jp/soft/win95/util/se349380.html

フリーソフトでよければ、VectorにNT系用Choiceがあります(下記URL)。
#2さんが、set /P を使ったものを書いてらっしゃいますが、set /P の機能はWin2000以降なので、NT4では使えません。フリーソフトを使わず、NT4とXPで共通のスクリプトにするなら、VBSを使うしかないですね。例えば、

echo WScript.Stderr.Write "Enter(Y/N):">tmp.vbs
echo WScript.Echo WScript.Stdin.ReadLine>>tmp.vbs
:ReEnter
set ANS=
for /f %%A in ('cscript //nologo tmp.vbs') do set ANS=%%A
if /i "%ANS%"=="Y" goto YES...続きを読む

Qwindows2000でのコマンドプロンプトの別ユーザー実行について

こんにちは。

Windows2000で、コマンドを別ユーザー権限で実行したいと考えています。

以下のやり方だとうまくいきませんが、何かいい方法はないでしょうか?

1、.bat or .cmd ファイルにして、SHIFT+右クリックで別ユーザー実行をしたい
× .batと.cmdでは別ユーザー実行がでない(表示されない)

2、コマンドプロンプト内で、runasを使用してユーザー権限を変更する。
x これはどうもWindows2000には対応していない?

上記のように作業なかんじで作業がうまくいきません。

現状は、コマンドプロンプトを右クリック別ユーザー実行で立ち上げた後
コマンドプロンプト内にいれたかったものをテキストに貼り付けておいて、コピーペイストが一番シンプルで確実かなと思っている次第です。

よりよい方法はないでしょうか?よろしくお願い致します。

Aベストアンサー

runasはWindows2000でも動きましたよ。
【参考】
http://atanswer.blog9.fc2.com/blog-entry-8.html

やってみたコマンド
runas /u:ユーザ名 notepad.exe ユーザ名:実際にうごかしたいユーザ名

注:runasサービスが動いているか確認してから実行してみてください

Qコマンドgcc(あるいはcc),cpp,as,ldの機能を教えてください。

上記の通りなんですが、よろしくお願いします。

Aベストアンサー

cc は、C 言語のコンパイラです。C 言語でかかれたソースを実行形式のファイルに変換します。

cpp は、C 言語のプリプロセッサです。C では、コンパイルの中にプリプロセスという処理があり、
#include や #define 等の行を処理します。

as は、アセンブラです。プリプロセスされた C のソースを機械語(CPU が実行しやすい形)にします。

ld は、リンカです。C では、よく使われる機能をライブラリという形で、別に持っておくことが
できますが、それをくっつける処理を行います。

# マニュアルを読む方が早いと思うんですが、読んでも分かりませんか?

Qシェルスクリプトでバックグラウンドで実行したコマンドの実行結果を取得するには

OS redhat linux
シェル bornシェル

シェルスクリプトでバックグラウンドで複数のコマンドを実行し、
すべてのコマンドが正常に終了したら次の処理へ進むみたいな事をしたいのですが、可能でしょうか?

直列にすればよいのですが、処理時間短縮の為、並列に処理したいのです。
宜しくお願いします。

Aベストアンサー

バックグラウンドで実行する全コマンドを実行した後、waitコマンドを実行すると良いと思います。
waitコマンド(引数なし)を実行すると、全てのバックグラウンドのコマンドの終了を待ちます。

Qコマンドラインで実行できて、バッチファイルで実行できない

nslookupの結果を取得して環境変数へ代入するコマンドを作りました。
環境:Windows7 Professional 32bit

for /F "skip=1 tokens=1,2 " %i in (' nslookup yahoo.co.jp^|find /i "Add" ') do @set IP=%j

コマンドラインでは実行結果が変数に代入されますが、そのままバッチ
ファイルして実行すると、「jの使い方が誤っています。」
というエラーとなり、結果が得られません。

原因を考えましたが、コマンドライン上とバッチファイルでの違いがよく
分かりません
原因お分かりの方、よろしくお願いします。

Aベストアンサー

えっと。私もすでに忘れかけてますが、
コマンドラインとバッチファイル内では、書き方の一部を変える必要があります。
・% は %% と書く (他にもあった気がしますがぱっと思い出せない)

No.1 さんが言われてるのはそういうことです。


人気Q&Aランキング

おすすめ情報