WindowsNT4.0において、~.batと~.cmdの違いはあるのでしょうか?
もしあるとしたら、どのような違いでしょうか?
宜しく御願いします。

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

CM windows」に関するQ&A: ASUS製 P5KPL-CMで Windows8.

A 回答 (4件)

明確な記述はないのではないので、あくまでも私見です。



CMDには、2つの形態があます。
1.バッチファイルとしての形態(shellといった方がよいかも知れません)
拡張子に、cmdまたは、batがついたものは、通常のバッチファイルとして使用可能で、call、goto、setlocal、echo、if、shift、endlocal、pause、%、for、remなど共通です。
この観点から見ると、Windows NT、Windows 2000、Windows XPでは、cmdもbat拡張子は同じといえるのではないでしょうか。
また、DOSと互換のAUTOEXEC.NTや、CONFIG.NTが、\SYSTEM32ディレクトリィで使用されています。

2.CMD.EXE(Windows NTから新しく出来た。)とCOMMAND.COM(旧来のコマンドインタープリーター)があります。両方とも存在します。

CMD.EXEは、Windows NT/2000/XPでのNativeなコマンドインタープリーターで、従来のDOSのCOMMAND.COMに比べると、より豊富な環境変数を提供しています。"set + Enter"でDOS時代より、さらに詳細な環境変数が表示されます。

以上ですが、私見ですので、専門家の方の意見を求めてください。
    • good
    • 0

訂正


誤:PAHTEXT
正:PATHEXT
タイプミスです.
    • good
    • 0

理解して頂けてるとは思いますが,


優先順位は拡張子を省略した場合の実行順位です.
    • good
    • 0

同じだと思います.



ただし,同じ名前で .bat と .cmd があった場合 .bat が優先されます.
DOS では .com .exe .bat と決まっていましたが,
いまは環境変数の PAHTEXT で決まるようです.
.com .exe .bat .cmd ........
変更するのはお勧めできませんが.
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

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

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

Qbatを逐次呼ぶbatファイルをバックグラウンド起動したい

バックグラウンド起動するときは、STARTを使う、ということまではわかったのですが、

---a.bat---
@echo off

start b.bat
exit
-----------


---b.bat---
@echo off

start /wait c.bat
start /wait d.bat

echo end
exit
-----------

とすると、b.batのc.batを起動した時点で終了してしまうようです。

b.bat起動→c.bat起動→d.bat起動→「end」表示
とするにはどうしたらいいでしょうか?

b.batの内容を出来ればしなくないのですが…。

Aベストアンサー

callじゃ駄目なのですか?
@echo off

call b.bat
call c.bat
call d.bat

echo end

Qワークステーション(デスクトップ)PC用NT4.0とサーバ用NT4.0のOS違い

東芝Equium9000ミニタワーPC(OS:NT4.0、メモリ:128MB、HDD:15GB)を購入しましたが、パッケージS/Wのインストールができず、S/W販売元に確認したら、『サーバ用OS:NT4.0向けに開発している為、インストール不可です!』といわれてしまいました。ワークステーション(デスクトップ)PC用NT4.0とサーバ用NT4.0のOS違いってなんですか???S/Wメーカに聞いたら、デスクトップPCにサーバ用NT4.0の乗替えをすれば、OKとも言われました。何がどう、違うのでしょうか???
あと、サーバと通常のパソコンの違いって何???

Aベストアンサー

NT4に関して、当初MSは別開発の製品だと言って居たのですが、
実はレジストリの設定だけでServer昨日になるということが発覚し
当時は大騒ぎになりましたよね(笑)。その後できなくなりましたが。

さて、Serverは通常のソフトウェアの実行よりもネットワークで
クライアントから操作される処理の方を高速にできるようにチューニングしている
と言う違いがあります。
なにより、クライアントから操作できるようになっているというのが大きいですよね。
また、NTServerに関しては特にドメインコントローラという機能があって、
ユーザの設定をサーバに保存し、使用時にクライアントに移送することによって
どのユーザがどのクライアントを使用してもほぼ全く同じ環境を提供できるという
利点があります。ファイルサーバも兼ねておけば完璧ですよね。

マシンの違いですが、基本的にそんなに違いが無くても通常は困ることは
ないですが、やはり、それなりの信頼性、故障しにくいとか停電しても安心とか、
高速かつ故障に強いなHDDとかLANカードとかを使用された方が
やはりいいですよね。
おかしくなったら一番困るものですから。(一台に集中している分リスクも大きい)

NT4に関して、当初MSは別開発の製品だと言って居たのですが、
実はレジストリの設定だけでServer昨日になるということが発覚し
当時は大騒ぎになりましたよね(笑)。その後できなくなりましたが。

さて、Serverは通常のソフトウェアの実行よりもネットワークで
クライアントから操作される処理の方を高速にできるようにチューニングしている
と言う違いがあります。
なにより、クライアントから操作できるようになっているというのが大きいですよね。
また、NTServerに関しては特にドメインコントローラと...続きを読む

Qbatファイルで、あるディレクトリ配下に存在する場合は、実行を中断

batファイルのコードで、
このbatファイルがある特定のディレクトリ内にある場合は、即座に実行を中断するようにしたいのですが、どうすればよいでしょうか。


詳しく述べます。
あるbatファイルがあります。
このbatファイルは、普段、マウスでダブルクリックして実行しています。
仮に、このbatファイルが
C:\Temp\a
というディレクトリにある場合に実行を中断するには、

========================
set ThisScriptPath=%~dp0
if "%ThisScriptPath%" == "C:\Temp\a\" goto END
・・・
:END
set ThisScriptPath=
========================
というようなコードを入れておけばいいと思います。

しかし、C:\Temp の中の「どのサブディレクトリにbatファイルがある場合でも(aサブディレクトリでもbサブディレクトリでも、何階層下でも)」実行を中断するにはどうすればいいのでしょうか。

batファイルのコードで、
このbatファイルがある特定のディレクトリ内にある場合は、即座に実行を中断するようにしたいのですが、どうすればよいでしょうか。


詳しく述べます。
あるbatファイルがあります。
このbatファイルは、普段、マウスでダブルクリックして実行しています。
仮に、このbatファイルが
C:\Temp\a
というディレクトリにある場合に実行を中断するには、

========================
set ThisScriptPath=%~dp0
if "%ThisScriptPath%" == "C:\Temp\a\" goto END
・・・
:END
set...続きを読む

Aベストアンサー

こんなかんじでしょうか。

@echo off
cd | find /i /v "c:\temp"
if errorlevel 1 goto end

dir

:end
exit



もしうまくいかなかったらこちらを。

@echo off
cd > cdcheck.dat
find /i "c:\temp" < cdcheck.dat > nul
if errorlevel 0 goto end

dir

:end
del cdcheck.dat > nul
exit

QWindowsNT4.0とWindowsNT Server4.0の違いは?

WindowsNT4.0とWindowsNT Server4.0の違いは何なのでしょうか?

Aベストアンサー

クライアントPCとして使用するには全くと言って良いほど同じです。ただ、Serverということから以下のような機能が利用できます。
アカウントの管理ができる、ドメインコントローラーになれる、DHCPサーバやIISサーバも構成できる。
あと、複数CPUのサポートや最大搭載可能メモリーも違ってた気がします。ここのところはうろ覚えですが。

QエクセルVBAよりBATファイルを起動する方法。

エクセルVBAよりBATファイルを起動する方法を教えてください。

現在下記の様な内容で作ってみましたがうまくいきません。

***VBA側***
Private Sub CommandButton5_Click()
Dim myID As String
myID = Shell("D:\test.bat", vbMaximizedFocus)
End Sub

***BATファイル側***
xcopy "d:\test1" "d:\test2"/I/Y

エクセル2003で実行してみましたがうまくいきません。BATファイルは起動しているようなのですが、BATファイルの処理がうまくいかなくて困っています。(ちなみにBATファイル単体をダブルクリックで実行すると問題ないのですが…)

同じ内容をエクセル2007で実行するとうまくいきました。(ちなみにOSはVISTA)
2003(ちなみにOSはxp)で上手くいかないのがどうしてかわかりません。
どうか詳しい方ご教授ください。よろしくお願いいたします。

Aベストアンサー

こんばんは。

私は、こちらで試してみて、BATのパス・ファイル名のショートネーム(8.3型)の制約があるからだと解釈しましたが、もう一度読み直してみて、それは違ったようです。

>上手くいかないのがどうしてかわかりません。

パソコン自体を調べてみないと分かりませんが、おそらく、BATプログラム用のメモリ不足しているのではないかと思います。おそらく、完全に、VBAに移行するか、Excelの起動をやめるかしないと解決は難しいかもしれません。

ただ、もう一度、他の方法を二つ作ってみましたので、以下を試してみてください。きわめて微妙な内容です。貼り付けるのはそのままでよいのですが、出来るなら、試すのは、2番目からにしてください。2番目で成功すれば、1番目は使わなくてよいです。

'-------------------------------------------
'モジュールの先頭に置く
Private Declare Function ShellExecute Lib "SHELL32" Alias "ShellExecuteA" (ByVal hWnd&, ByVal lpOperation$, ByVal lpFile$, ByVal lpParameters$, ByVal lpDirectory$, ByVal nShowCmd&) As Long
Private Const SW_SHOWNORMAL As Long = 1 'ウィンドウをアクティブにして、表示します
Private Const SW_SHOW As Long = 5 'ウィンドウをアクティブにして、現在の位置とサイズで表示します。
'-------------------------------------------
'1番目
Sub Test1()
'Sub CommandButton5_Click()
  Dim ret As Long
  Const FILENAME As String = "D:\test.bat"
  ret = ShellExecute(Application.hWnd, "Open", FILENAME, vbNullString, vbNullString, SW_SHOWNORMAL)
  If ret = 0 Then
    MsgBox "失敗しました。", vbExclamation
  End If
End Sub
'-------------------------------------------
'2番目
Sub Test2()
'Sub CommandButton5_Click()
  Const FILENAME As String = "D:\test.bat"
  CreateObject("WScript.Shell").Run FILENAME
End Sub

こんばんは。

私は、こちらで試してみて、BATのパス・ファイル名のショートネーム(8.3型)の制約があるからだと解釈しましたが、もう一度読み直してみて、それは違ったようです。

>上手くいかないのがどうしてかわかりません。

パソコン自体を調べてみないと分かりませんが、おそらく、BATプログラム用のメモリ不足しているのではないかと思います。おそらく、完全に、VBAに移行するか、Excelの起動をやめるかしないと解決は難しいかもしれません。

ただ、もう一度、他の方法を二つ作ってみましたので...続きを読む

QWindowsNT4.0で、バッチファイル(*.bat)の関連付けが壊れた

バッチファイルをダブルクリックなどして実行しても、
エディタでそのファイルを開くようになってしまいま
した。この関連付けを復旧するにはどうしたらいいん
でしょうか?


Meで同様の質問があったのは見つけています。それと
同じでよいのなら助かるのですが、そのマシンが手元
にないので試すことができません。

Aベストアンサー

ファイルの動作と拡張子の関係はここで変更できます。

1. ファイルマネージャを起動します。
 スタートメニュー
 ↓
 ファイル名を指定して実行
 ↓
 名前: winfile (入力)

2. アプリケーションとの関連付けを確認します。
 ファイル
 ↓
 アプリケーションとの関連付け
 ↓
 拡張子: bat (入力)
 ↓
 ファイルタイプ変更 (※)

ここで私のマシンの場合は、各項目が以下のように設定されてます。これにあわせてみてください。

 ファイルタイプ: MS-DOS バッチファイル
 動作: 開く
 コマンド: 「"%1" %*」 (「」内を入力)
 DDEを使用: (チェック状態)
 アプリケーション: 「"%1"」 (「」内を入力)
 トピック: System

(※) このボタンが押せないときはファイルタイプ作成ボタンを押して上記と同じように設定し、ファイルタイプと関連付ける拡張子欄に"bat"を追加してください。

フォルダオプションのファイルの種類からもこのテの変更はできると思うので、その方法を今から試してみます。
なので、もしこれでだめだったらまたカキコしてみてくださいね。

ファイルの動作と拡張子の関係はここで変更できます。

1. ファイルマネージャを起動します。
 スタートメニュー
 ↓
 ファイル名を指定して実行
 ↓
 名前: winfile (入力)

2. アプリケーションとの関連付けを確認します。
 ファイル
 ↓
 アプリケーションとの関連付け
 ↓
 拡張子: bat (入力)
 ↓
 ファイルタイプ変更 (※)

ここで私のマシンの場合は、各項目が以下のように設定されてます。これにあわせてみてください。

 ファイルタイプ: MS-DOS バッチファイル
 動作: 開...続きを読む

QPL/SQLをWindowsのBATファイルで実行するには

いつも参考にさせていただいております。
表題のとおり、WindowsServer2003上でBATファイルを起動したいのですが、うまくいきません。

BATファイルの中身
sqlplus USER_A/USER_A @DB_A @SQLPAT
sqlplus USER_B/USER_B @DB_B @SQLPAT

SQLPATファイルは、大体以下の感じで、2つのスキーマーで同じPL/SQLを実行します。

Declare

カーソルループ
更新


END;

タスクにBATファイルを登録し実行すると
最初のPL/SQLは実行されますが、次のUSER_Bが実行されません。

どなたか詳しい方ご教授をお願いできませんでしょうか?
オラクルのVerは9iです。よろしくお願い致します。

Aベストアンサー

pl_sqlは予めDBに登録しておく。
CREATE OR REPLACE PROCEDURE pl_hoge()
IS
・・・
BEGIN
・・・
END;
/

■hoge.bat
sqlplus user/pass@dbname @hoge.sql

■hoge.sql
SET serveroutput ON;
BEGIN
pl_hoge();
END;
/
exit;

1さんはhoge.sql最後のexit;を指摘してます。
私もそれと疑いますが。

QNT4.0からNT2000にしたら

NT4.0からNT2000にしたらにVB
(OFFICE95に入っていたもの)で作成したプログラムが
動かなくなると聞いたのですが、本当でしょうか?
動くようにするにはどうしたらいいんでしょうか?

Aベストアンサー

 
> (OFFICE95に入っていたもの)で作成したプログラムが
> 動かなくなると聞いたのですが、本当でしょうか?

使用するコンポーネント(OCX等)に依存します。

> 動くようにするにはどうしたらいいんでしょうか?

ランタイムライブラリやコンポーネントに依存しないプログラムを作る。
 

QVBS から BAT を起動させたい

いつも参考にさせてもらっています。

下記vbsファイルのコード ********** 部分に何かをかいて
YESを押したとき ソフト(実際にはソフトを起動させるためのbatですが)
が起動するようにしたいのですがどうすれば良いでしょうか?

Dim rc
rc = MsgBox("起動しますがよいですか?", vbYesNo)
If rc = vbYes Then
*********************
End If

Aベストアンサー

これでいけますか?
Dim rc
dim objWShell

Set objWShell = CreateObject("WScript.Shell")
rc = MsgBox("起動しますがよいですか?", vbYesNo)
If rc = vbYes Then
objWShell.Run "C:\test.bat" <=ここをファイルパスに
End If

Set objWShell = Nothing

QWindowsNT4.0に搭載できるのはIIS4.0まででしょうか?

初心者ですので、馬鹿な質問をしていたらすみません。

WindowsNTでWebサーバを立てようとしています。
そこで、現在NTがIIS4.0までをサポートしていることは分かったのですが、
Win2000に搭載されているIIS5.0は載せることは出来ないのでしょうか?

そもそもIIS5.0の媒体なんてあるのでしょうか?

もしご存知の方がいらっしゃいましたら教えてください。

よろしくお願いします。

Aベストアンサー

IIS5の正式名称は、Internet Information Serviceで、IIS4は、Internet Information Serverで、ソフトとしては別物です。したがって、Win NTにIIS5は載せることはできません。

そもそものIIS5の媒体ですが、Win2000のCDにはいっています。

裏技で、NTにIIS5というのもあるかもしれませんが、私は知りません。


人気Q&Aランキング

おすすめ情報