• 締切済み

batファイルの実行が1行目のみループ

windows serverど素人です。 windowsサーバーにおいて、caclsコマンドをbat実行しようとすると、 1行目をループ実行し、2行目に進みません。 原因と対処方法のわかる方是非アドバイスください。 テスト(↓)では正常に実行できたのですが、本番バッチにおいて 【手順】(4)の1行目をループします。 文字コードや特殊文字が入っていないかは、テスト作業実施前に チェック済みですが・・・(再度実行します) 原因と対処方法のわかる方是非アドバイスください。 【背景や目的】 4月から新規小企業に転勤し1人で管理者をまかされています。 windows serverで、新規ユーザーを400人分ほど登録する必要があります。 【手順】 前任者からの引継ぎにより次の作業をbatファイルにて実行します (1)dadd user OU 省略 DC 省略 など以下省略 (2)mdで個人用フォルダ(homeフォルダ?)作成   (※個人フォルダのパスの一部フォルダ名に「$」の文字を含む   意味があるのかはわかりませんが、前々任者の指示による。   特殊文字でひっかからないのでしょうか!?) (3)mdで(2)で作成した各個人フォルダのしたに「docu」という名前のフォルダを作成する (4)caclsコマンドで(2)のフォルダそれぞれに(1)のユーザーのフルアクセス権を設定する 【テスト実施結果】 (1)前任者からのエクセルファイルとバッチファイルを比較。  バッチ作成用のエクセルファイルにおいて参照が崩れていて不明な点が  多々発生したため、修正。 (2)10人分のテストデータを作成し、生成したbatファイルを前年分と比較 (3)テスト用バッチファイルを4つを実行。 (4)以下を確認  ・バッチ正常に実施  ・クライアントからログインできる  ・その他のアクセス権なども正常であることを確認 【本番】 400人分のデータを作成 【本番:問題発生】 caclsバッチ実行時にループ発生。 1行目を無限に実行しようとしている。 【本番:問題発生後の結果】 1行目のバッチは実行され、1つ目のフォルダには1行目のユーザーのフルアクセス権が 設定されているが2行目で指定しているフォルダには何も設定されていないままである。 【本番:補足】 本番の作業において(1)のdadd userを実行する際に、スペースをタブのまま実行したため ユーザーの作成ができていなかった。 このため、タブをスペースに変換し再度実行したところ、ユーザー作成が正常に完了した。 影響を心配したがその後の(2)(3)の作業は問題なく実施することができたため(4)の原因 ではない!? その他OUなどの手動作成などもありますが、前任者に電話で確認しテストでは正常に 実行できています。

みんなの回答

  • Gotthold
  • ベストアンサー率47% (396/832)
回答No.2

よくやらかすのは バッチファイルの名前をバッチファイル内で実行しているコマンドと同じにしちゃって、 コマンドを実行しているつもりがそのバッチファイル自身を呼び出して 無限再帰呼び出しになったとか。

yudesu
質問者

お礼

ありがとうございます。 おっしゃるとおりファイル名でした。 問題解決しました。ありがとうございまいた! 次のように不思議な実行結果でしたが・・ ・コマンドと同じものをファイル名にしても実行できているもの ・コマンド名と異なる(末尾にハイフンで続けて数字などがある「cacls_withonly10line」など ・windowsのコマンド操作は初心者はどの資料から勉強したらよいのでしょうか。たいていの本はGUIで・・・

全文を見る
すると、全ての回答が全文表示されます。
  • drum_KT
  • ベストアンサー率43% (1108/2554)
回答No.1

バッチかデータのどちらかがおかしいとしか考えられません。 その内容を開示できないところで質問しても解決するのは無理です。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • batが実行できない

    すいません、緊急で教えてください。 簡単なバッチを作成し、test.batとしてwinXPでtest.batをダブルクリックして実行しようとしましたが、 一瞬だけ黒い画面がひらいて、実行されません。 仕方なくプロンプト上で手動でtest.batを実行しようとしましたが 下記エラーでどうもtest.batの文字が認識されないようです。 C:\>r 'r' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 当方、初心者なので、調べてもわかりませんでした。 すいませんが、教えてください。

  • batファイルの実行について

    batファイルを作成しました。 (ATコマンドにてスケジュールさせたいと考えてます。) ファイル自体をダブルクリックで実行すると正常に処理が完了しますが、コマンドプロンプトから実行しようとすると以下のエラーが発生します。 〓〓〓〓〓〓〓〓〓〓〓〓 C:\>cmd /c "E:\MirroringTool\SimpleFolderMirror\test.bat" 指定した名前は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されません。 〓〓〓〓〓〓〓〓〓〓〓〓 実行させたいbatファイルは以下のとおりです。 〓〓〓〓〓〓〓〓〓〓〓〓 echo off cls rem ↓SimpleFolderMirror.exeを解凍したフォルダ SET EXEFOLDER_PATH="E:\MirroringTool\SimpleFolderMirror\" rem ↓ログの出力フォルダ・ファイル SET LOG_DIR="E:\MirroringTool\SimpleFolderMirror\logs\" rem ↓ミラー元フォルダ1 SET COPY_FROM_PATH_01="S:\" rem ↓ミラー先フォルダ1 SET COPY_TO_PATH_01="E:\ORANT\OWS" cd %EXEFOLDER_PATH% SimpleFolderMirror.exe %COPY_FROM_PATH_01% %COPY_TO_PATH_01% > %LOG_DIR%logs.txt 〓〓〓〓〓〓〓〓〓〓〓〓 cd %EXEFOLDER_PATH%のところまでは処理は完了しているようなので、最後の行のところで発生しているようです。 何が原因でエラーが発生してしまっているのでしょうか? 宜しくお願い致します

  • 複数のbatファイルを自動実行したい

    複数のbatファイルがあり、それをさらにバッチ化したいのですが 1行目のbatファイルしか実行してくれません。 原因と対応をご存知であれば 教えて下さい。 以下のhhh.batを実行した場合、aaa.batしか実行してくれません。 (もちろん、単体ではそれそれ実行できます。) hhh.batファイルの中身 c:\aaa.bat c:\bbb.bat c:\cccbat

  • Batファイルでxcopyを実行するとループする

    BatファイルでCドライブのaaaフォルダからDドライブのaaaフォルダへファイルをコピーするxcopyの記述をしました。 xcopy c:\aaa d:\aaa /i 作成したBatファイルを実行するとループしてるのか、このコマンドが何度も繰り返され、コマンドプロンプトの×ボタンを押すまで終わりません。 コマンドプロンプトから直接xcopyを入力すると問題なくコピーされます。 どこか私の記述が間違っているのでしょうか?

  • dsmoveコマンドをBATファイルで実行したい

    数百回のdsmoveコマンドをBATファイルで一括処理したいのですが、 うまくいかず困っています。良い方法があれば教えてください。 コマンドは以下のような感じですが、コピペしてコマンドプロンプトから実行すると 正常に動作するので、コマンド自体は正しいはずです。 dsmove "CN=test1,OU=Office,OU=test,DC=test,DC=kaisya,DC=co,DC=jp" -newname "test001" dsmoveが、バッチからでは実行できないということは無いですよね?

  • iniファイルを呼ぶバッチファイルの実行

    VB2008でProcess.Startを使ってバッチファイルを実行する プログラムを作成しました。 バッチファイルではini.batという変数に値を設定するファイルを 最初にcallしています。 しかし設定されずにエラーになってしまいます。 どうしたらうまく動くのでしょうか。 バッチファイルをクリックで実行すると正常に動作します。

  • バッチファイルで実行できたりできなかったり

    こんにちは。 バッチファイルとコマンドプロンプトについて、少々お伺いしたいことがあります。 まず、コマンドプロンプトで以下のコマンドを打ち込んでみたところ、すべて正常に実行することができました。 ping [example.com] > result.txt tracert [example.com] >> tr_result.txt ipconfig /all > ipc_result.txt 次に、各コマンドをテキストファイルに書き込んで、それぞれ "p_test.bat" # 内容は ping コマンド "tr_test.bat" # 内容は tracert コマンド "ipc_test.bat" # 内容は ipconfig コマンド と命名しデスクトップに配置、ダブルクリックで実行してみました。 すると、このうち正常に実行(結果をテキストファイルに出力)されたのは tr_test.bat のみでした。 ここで質問なのですが、なぜこのような違い(バッチファイルにすると実行できるものとできないものに分かれる)が起こるのでしょうか? バッチファイルの作り方やとコマンドプロンプトについて調べてみましたが、説明を見つけることが出来ませんでした。 この辺の理論について詳しい方がおりましたら、ご教示頂きたく思います。 ちなみに、OS は Windows XP SP2 です。 よろしくお願いいたします。

  • 外部ファイルを実行するには?

    お世話になります。 vb6で外部のバッチファイルを起動して、それを動作させようとしているのですが、うまくいきません。特にエラーにはならず、一瞬DOSプロントは立ち上がるんですが、バッチ処理しているログにはなにも書き込まれません。普通にバッチファイルをダブルクリックさせるか、コマンドからバッチファイルの入っているフォルダまでいって、バッチファイルを実行すれば書き込まれるのですが。 どこがまちがっているのでしょうか?shellじゃなくて、違う関数を使わなければいけないのでしょうか?ご教授よろしくお願いします。 なお、vb6でテストするときは▸マークの実行を押して、テストしました。 サンプル用のものです。 ↓test 現在の時間をログに記入 ■バッチファイルの中身(test.bat) echo test >> log.txt time/t >> log.txt ■vb6のファイルの中身 Private Sub Command1_Click() Dim ret as long ret = shell("cmd.exe /c C:\test\test.bat",4) End Sub

  • ファイル名を指定して、batファイルを実行したい。

    C♯、PostgresSQL環境です。 フォームのボタンを押した時、batファイルを実行したいと 考えています。 処理の内容は、DBのバックアップ・リストアです。 現在は、Process.Startを使ってバックアップ用のbatファイルを 実行していますが(処理としてはpg_dumpallをしています)、 リストア時はファイル名を指定してリストアさせたいのです。 (ファイル名を指定してリストア用batファイルを動かしたい) Process.Startの第二引数でファイル名を渡せば良いかと思ったの ですが、バッチファイルでそれを受け取って処理に入れるには どうすれば良いのでしょうか? (バッチファイルはコンソールアプリとして作ったわけではなく、 メモ帳で作成したものです) ヒントをいただけると助かります。 宜しくお願いします。

  • BATファイル実行にフォーカスを当てたい

    Windows2008サーバにRDPでWindows7から実行しています。 サーバにBATファイルを作成し、(XCOPYコマンド)データのバックアップを行います。 この時ですが、クライアント(Windows7)で実行させたBATファイルですが(コマンドプロンプト)画面が なぜか背面にかくれてしまい、BATの実行内容がみれなくなることがあります。また、BATの終了時に、正常終了かどうかの表示を行い、Pauseコマンドで止めていますが、これが、背面にかくれてしまい、いつ終ったのかわからない状態です。ずーっとBAT自動されたコマンドプロンプトの表示にフォーカスを当てたいのですが、BATに記述することにより、再度フォーカスを取り戻すようなコマンドはあるでしょうか?よろしくお願いします。