新規無料会員登録で1000名様に電子コミック1000円分が当たる!!

すいません、緊急で教えてください。

簡単なバッチを作成し、test.batとしてwinXPでtest.batをダブルクリックして実行しようとしましたが、
一瞬だけ黒い画面がひらいて、実行されません。
仕方なくプロンプト上で手動でtest.batを実行しようとしましたが
下記エラーでどうもtest.batの文字が認識されないようです。

C:\>r
'r' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。

当方、初心者なので、調べてもわかりませんでした。
すいませんが、教えてください。

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

A 回答 (4件)

おそらくは、バッチファイルを作ったときに使ったエディタのいたずらでしょう。


そのバッチファイルは、どうも、UNICODE で書かれているようです。
UNICODE で書かれると、設定によっては冒頭にBOMというコードが付加されます。
これを(UNICODEを理解しない)コマンドプロンプトで実行すると、ちょうどこんな表示になるようです。

これ以降、もっと意味不明な行がつながっていたと思いますが。

エディタの設定を見直して、Shift_JIS で保存するようにしてみるとか、Windows附属のNotepadを使うとかしてみると良いかもしれません。
    • good
    • 3
この回答へのお礼

ご指摘いただいたとおり、unicodeで保存していたみたいです。
Shift_JISで保存して実行したらうまくいきました。

ありがとうございました。

お礼日時:2011/09/02 13:15

まず、以下の内容を確認してください。



1)バッチファイルで実行するプログラム「r」はどこ(どのフォルダ)にありますか?
→バッチファイルを実行する際には、そのプログラムのある位置(フォルダ)を絶対位置で指定する必要があります。
たとえば、C:\temp というフォルダに「r」というファイルがある場合には

c:\temp\r

と書く必要があります。

2)「r」の拡張子は何でしょう?
→実行ファイル「r」の拡張子をバッチファイルに記載した方が良いでしょう。
通常の設定では「登録されている拡張子は表示しない」になっているので見えませんが、バッチファイルには拡張子を書いておかないとバッチ実行時にOSがどのファイルを実行していいのか判別できない場合があります。

Windows7であればフォルダを開いた後「整理」「フォルダーと検索のオプション」「表示」「詳細設定」の中にある「登録されている拡張子は表示しない」のチェックを外して拡張子を確認し、その拡張子を記載した方が良いでしょう。

例:test.batの中身 (rの拡張子がexeでc:\tempにある場合)
C:\temp\r.exe

以上、ご参考まで。
    • good
    • 1

記述したコマンドはどのようなコマンドでしょうか。

呼び出し方法が間違っているのかも。
    • good
    • 1

 


>'r' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。
このメッセージの通り
コマンドを間違ってるからです。
 
    • good
    • 1

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

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

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

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

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

Qwin10 バッチファイルの起動時の自動実行方法?

Win7のころからスタートアップに、RamDisc初期化.batのショートカットを置いて、起動時に自動でRamDisc初期化を実行していました。終了も自動です。
初期化内容は、NTFSフォーマットと必要なフォルダーの作成です。

Win10(クリーンインストール)で同様にしても、このバッチファイルが自動で起動してくれません。
しかし、プログラム→スタートアップ→RamDisc初期化.bat(ショートカット)をクリックすると、正常終了します。終了も自動です。

このショートカットは、
ユーザー→AllUser/Default/"ユーザー名”各々…等→スタートメニュー→プログラム→スタートアップ
のどこにおいても同じです。

PCは一人利用なので、"ユーザー名”も管理者権限、
ショートカットの実行は、「管理者として実行する」を設定済み、
なので、ショートカットの手動クリックでは自動実行…終了するので、
スタートアップ登録のショートカットが無視されている様子。

何か、設定漏れがあるのでしょうか? お気づきの方、ご助言ください。

Win7のころからスタートアップに、RamDisc初期化.batのショートカットを置いて、起動時に自動でRamDisc初期化を実行していました。終了も自動です。
初期化内容は、NTFSフォーマットと必要なフォルダーの作成です。

Win10(クリーンインストール)で同様にしても、このバッチファイルが自動で起動してくれません。
しかし、プログラム→スタートアップ→RamDisc初期化.bat(ショートカット)をクリックすると、正常終了します。終了も自動です。

このショートカットは、
ユーザー→AllUser/Default/"ユーザー名”...続きを読む

Aベストアンサー

Win10環境で試せないので未確認です

Win7で動いていたなら違うかもしれませんが
プログラムによってはUAC制御の影響でスタートアップ登録では動かないというものもあります
そういったときの対処として
タスクスケジューラでログイン時に起動して対処する方法がありますが
同様な対処で回避できたりしませんか?

以下参考
http://windows7.wiki.fc2.com/wiki/%E3%82%B9%E3%82%BF%E3%83%BC%E3%83%88%E3%82%A2%E3%83%83%E3%83%97%E3%81%A7%E3%82%A2%E3%83%97%E3%83%AA%E3%81%8C%E8%B5%B7%E5%8B%95%E3%81%97%E3%81%AA%E3%81%84

QWindows7の .batファイル動作

Windows7で .batファイルがテキストとして開く
ようになってしまったのですが、
これをバッチファイルとして動作するように
元に戻したいのですが、どうすればよいでしょうか。
コントロールパネルより関連付けの画面を開いたのですが、
よく分からず、教えていただけましたら幸いに存じます。

Aベストアンサー

No.3です。
変な回答をしてしまいました。すみません。少し考えさせてください。
解決策が見つかるまでの間、とりあえず、.batを .cmd に変更するといいです。

Qコマンドプロンプト表示が一瞬で消えてしまう

お願いいたします。

ファイル名をしてして実行から
 ipconfig と入力しOKすると
一瞬コマンドプロンプト枠が表示された後
直ぐ消えてしまいます。

消えない方法をご存じの方々
恐れ入りますがご教授頂きたく
お願い申し上げます。

Aベストアンサー

いつも私がやっている方法:
Step1 ファイル名を指定して実行で、cmd と入力してエンター
Step2 コマンドウィンドウが開いたら、そこで ipconfig /all と入力してエンター

終了するときは、コマンドウインドウで exit と入力してエンターが基本ですが、ウインドウの右上コーナーの × を押して閉じても問題は起きないようです。

Qコマンドプロンプトでコマンドが認識されません

コマンドプロンプトへ種々のコマンドを入力すると、
全部下記のような文字がでてきます。
「”convert”は内部コマンドまたは外部コマンド、操作
可能なプログラムまたはバッチファイルとして認識されていません」

その後は、又入力待ち画面になります。

ご教示の程宜しくお願い致します。

Aベストアンサー

>全部下記のような文字がでてきます。
全部ってどこまでですか?
dirも出来ないですか?
pathが通っていない気がしますが

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

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

例:
test.txt
abcacbacbacbacbacbacbacbacb

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

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

Aベストアンサー

これですね。

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

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

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

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

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

Aベストアンサー

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

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

区別するなら、

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

Qパスがあってない?指定されたパスが見つかりません

【OS】Win7 32bit

bat((1)とする)で、
devcon.exe update "C:\Program Files\Microsoft Xbox 360 Accessories\Xusb21.inf" "USB\VID_045E&PID_028E"
del C:\Users\Yxxxxxxxxx\Desktop\フォルダ1\フォルダ2\x360c.win7.x86.ja\x360cps.dll
pause

というコマンドを実行するときに、
一行目のdevcon.exeのupdateはDrivers updated successfullyと出るので、実行されていると思います。
しかし、二行目のdelのコマンドは、
「C:\windows\system32>del C:\Users\Yxxxxxxxxx\Desktop\フォルダ1\フォルダ2\x360c.win7.x86.ja\x360cps.dll
指定されたパスが見つかりません」と出ます。
パスが見つからないのだから、環境変数のpathに

C:\Users\Yxxxxxxxxx\Desktop\フォルダ1\フォルダ2\x360c.win7.x86.ja

を追加すればうまくいくだろうと追加したのですが、やはり同じ結果に。


違うbat((2)とする)もありまして、

devcon.exe update "C:\Users\Yxxxxxxxxx\Desktop\フォルダ1\フォルダ2\x360c.win7.x86.ja\x360c.inf" "USB\VID_045E&PID_028E"
pause

というbatなのですが、こちらはdevconのupdateだけですがupdated succsessfullyと出るので、

C:\Users\Yxxxxxxxxx\Desktop\フォルダ1\フォルダ2\x360c.win7.x86.ja

は通ってることになると思うんです。

x360cps.dllという文字列を「プログラムとファイルの検索」から検索して、場所を確認するとC:\Users\Yxxxxxxxxx\Desktop\フォルダ1\フォルダ2\x360c.win7.x86.ja
となっているし、このフォルダ内のx360cps.dllをcmd画面にドラッグ&ドロップすると、
C:\Users\Yxxxxxxxxx\Desktop\フォルダ1\フォルダ2\x360c.win7.x86.ja\x360cps.dll
と出ます。

削除自体はデスクトップからできるのですが、
なぜこの場合「指定されたパスが見つかりません」と出るのか納得がいきません。
フォルダ1,2のフォルダ名がいけないのでしょうか?
でも(2)が実行されてるしなあ。updateとdelではフォルダ名によってできるできないがわかれるのでしょうか?
フォルダ1の名前は全角カタカナ、フォルダ2の名前は漢字、半角スペース、全角カタカナの混在です。

この場合なぜ「指定されたパスが見つかりません」と出るのかどなたか教えていただけませんか?
足りない情報としてどんなものがあるかわからないので、足りない情報があればおっしゃってください。
ちなみに、batやpathについてはネットで読みかじった程度の知識しか持っておりません。
こんな者への回答ですが、宜しくお願いします。

【OS】Win7 32bit

bat((1)とする)で、
devcon.exe update "C:\Program Files\Microsoft Xbox 360 Accessories\Xusb21.inf" "USB\VID_045E&PID_028E"
del C:\Users\Yxxxxxxxxx\Desktop\フォルダ1\フォルダ2\x360c.win7.x86.ja\x360cps.dll
pause

というコマンドを実行するときに、
一行目のdevcon.exeのupdateはDrivers updated successfullyと出るので、実行されていると思います。
しかし、二行目のdelのコマンドは、
「C:\windows\system32>del C:\Users\Yxxxxxxxxx\Desktop\フォルダ1\フォルダ2\x360c....続きを読む

Aベストアンサー

delコマンドは複数のファイルを同時に削除するために複数のファイル名を引数にすることができるのではなかったかと思います.

このため,フォルダ2の名前に半角スペースが入っているとのことですので,delコマンドの引数がここで2つに分離されてしまっているのではないでしょうか.

delの引数のC:\Users\Yxxxxxxxxx\Desktop\フォルダ1\フォルダ2\x360c.win7.x86.ja\x360cps.dllをダブルクォーテーション(”)で括ってみては如何でしょう.

Qコマンドプロンプトでバッチファイルを実行とは

素人ですが、「コマンドプロンプトでバッチファイルを実行」というのはどうやってやるものですか。

#簡単なサンプルを教えていただきたいのですが。

Aベストアンサー

Windows用語のコマンドプロンプトとは
分類上はコマンドラインインターフェイス(CLI)で
他のOSでは、コンソールと呼ばれることが多い。
ターミナルといった呼び方をする場合もある。

総じて、キーボード入力のコマンドと
上へスクロールアウトしていく文字列で全てがまかなわれる。

正確には、コマンドプロンプトというのは
このコマンドラインインターフェイスにおいて
コマンドの入力を促すために表示されている文字列と記号を指します。
ほぼすべてのOSで普遍的にコマンドプロンプトはそれしか意味しません。

が、Windowsでは、用語の混乱がひどいので
MS-DOS互換コンソールのことをコマンドプロンプトと呼びます。
DOS窓とか、「コマンドラインで」とかいった表現も使います。

バッチファイルは、通常MS-DOSやWindowsにおいて
バッチ処理
(複数のコマンドをひとまとめにした処理)
を行うためのファイルで、拡張子はBATになっています。
中身は、単にコマンドが書き並べられています。

バッチファイルのアイコンをクリックしても起動できますが
バッチファイルでは、処理内容としてドライブや
ディレクトリー,ファイル等を明示的に指定することが多く
また、実行開始する場所からの相対指定が多用されます。

バッチファイルは想定されたディレクトリーで実行しなければ
誤動作したり、事故を起こす可能性も高いと思うべきです。
エラー処理に手間をかけるような事例であれば
最初からバッチファイルで用意したりしないでしょう。

絶対指定と相対指定というウェブにもある概念の理解と
カレントディレクトリーにかかわる位置感覚を身に着けることが
コマンドライン操作の鍵と言えます。

Windows用語のコマンドプロンプトとは
分類上はコマンドラインインターフェイス(CLI)で
他のOSでは、コンソールと呼ばれることが多い。
ターミナルといった呼び方をする場合もある。

総じて、キーボード入力のコマンドと
上へスクロールアウトしていく文字列で全てがまかなわれる。

正確には、コマンドプロンプトというのは
このコマンドラインインターフェイスにおいて
コマンドの入力を促すために表示されている文字列と記号を指します。
ほぼすべてのOSで普遍的にコマンドプロンプトはそれしか意...続きを読む

Qbatファイルの結果をテキストに吐き出すには?

以下のようなWindowsユーザーのパスワード変更batの結果(正常に出来たかどうか?)をCドライブに吐き出したいのですが、どうbatファイルを書き換えればよいでしょうか?
(とりあえず以下の内容でbatをたたいたのですが、うまく結果が出ません。。。)

henkou.bat
--------------------------------------
net user "test user1" ps123456 /domain
net user "test user2" ps456789 /domain
henkou.bat > c:\henkou結果.txt
pause
--------------------------------------

吐き出されたhenkou結果.txt
--------------------------------------
C:\>net user "test user1" ps123456 /domain
--------------------------------------

DOS画面(吐き出したいもの)
--------------------------------------
C:\>net user "test user1" ps123456 /domain
コマンドは正常に終了しました。

C:\>net user "test user2" ps456789 /domain
コマンドは正常に終了しました。

C:\>henkou.bat 1>c:\henkou結果.txt
--------------------------------------

以下のようなWindowsユーザーのパスワード変更batの結果(正常に出来たかどうか?)をCドライブに吐き出したいのですが、どうbatファイルを書き換えればよいでしょうか?
(とりあえず以下の内容でbatをたたいたのですが、うまく結果が出ません。。。)

henkou.bat
--------------------------------------
net user "test user1" ps123456 /domain
net user "test user2" ps456789 /domain
henkou.bat > c:\henkou結果.txt
pause
--------------------------------------

吐き出されたhenkou結果.t...続きを読む

Aベストアンサー

henkou.bat
--------------------------------------
@ECHO OFF

IF NOT EXIST %temp%\Redirect.txt GOTO REDIREXEC

@ECHO ON

net user "test user1" ps123456 /domain
net user "test user2" ps456789 /domain

@ECHO OFF

GOTO END

:REDIREXEC

ECHO REDIRECT > %temp%\Redirect.txt

CALL TEST.BAT > c:\henkou結果.txt

DEL %temp%\Redirect.txt

PAUSE

:END
--------------------------------------

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

Qコマンドプロンプトの「%1」と「%~1」の違いがわからない

コマンドプロンプトの「%1」と「%~1」の違いがわからない
このサイトにhttp://ykr414.com/dos/bat.html
%~1は「全ての引用句(")を削除して%1を展開する。」とありますがよくわかりません。

%1は入力されたファイルのフルパスだと思っているのですけど。
"%1"=%~1ということでしょうか。

Aベストアンサー

%1は、バッチファイルに指定された「第一引数」です。
バッチファイルに限らず、プログラムを実行するときには引数を指定することができます。
単純に関連づけて実行するとかバッチファイルのアイコンにファイルをにドラッグドロップするとかだと、引数は一つない場合が多いですが、
実際にはショートカットを作ったりコマンドプロンプトから指定するとか、二つ以上の引数を指定することができます。
その際、引数と引数の間はスペースで区切られます。(引数指定全体の文字列を、スペースで区切って各引数に分割する)

一方、例えば、マイドキュメントフォルダ「C:\Documents and Settings\ユーザー名\My Documents」を引数にを指定した場合、そのままだとフォルダ名に空白が入ってるので、
%1=C:\Documents
%2=and
%3=Settings\ユーザー名\My
%4=Documents
と、指定した一つの名前が複数の引数に分断されてしまします。

そこで、こういう場合には、ダブルクオートでファイル名を括ります。
プログラム起動時の引数に 「"C:\Documents and Settings\ユーザー名\My Documents"」
といった感じで、ダブルクオートを付けたものを指定すると、
%1="C:\Documents and Settings\ユーザー名\My Documents"
と、括られた部分がまとめて一つの引数と取り扱われるようになります。
そして、この時%~1は
%~1=C:\Documents and Settings\ユーザー名\My Documents
になります。

%1と%~1の使い分けですが、
引数をこのままファイル名として使う時は、%1をそのまま使えば問題ないのです。
(バッチファイルから別のプログラムを起動するときにファイル指定するとかだったら、
%1を使えば、ダブルクオート込みで渡されるので、そのまま一つの引数としてつかます)

一方、フォルダを指定してそのフォルダ下のファイル名を作る、といった処理をしようとする時には、
ダブルクオートが邪魔なので、そういう時は%~1を使います。
たとえば、指定した引数をフォルダとして、そのフォルダ下の「新規作成データ.txt」ファイルを表すフルパスのファイル名を作りたい場合、

単に
 「%1\新規作成データ.txt」とすると、「"C:\Documents and Settings\ユーザー名\My Documents"\新規作成データ.txt」になってしまいますが、

「"%~1\新規作成データ.txt"」とすれば「"C:\Documents and Settings\ユーザー名\My Documents\新規作成データ.txt"」という、正しくクオートされたファイル名を作ることができます。

%1は、バッチファイルに指定された「第一引数」です。
バッチファイルに限らず、プログラムを実行するときには引数を指定することができます。
単純に関連づけて実行するとかバッチファイルのアイコンにファイルをにドラッグドロップするとかだと、引数は一つない場合が多いですが、
実際にはショートカットを作ったりコマンドプロンプトから指定するとか、二つ以上の引数を指定することができます。
その際、引数と引数の間はスペースで区切られます。(引数指定全体の文字列を、スペースで区切って各引数に分割す...続きを読む


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

人気Q&Aランキング