バッチファイルでサブフォルダにあるexeを実行

このQ&Aのポイント
  • バッチファイルを使って、サブフォルダにあるexeファイルの実行を試みていますが、実行できない問題が発生しています。
  • フォルダ000内には、バッチファイルとサブフォルダAがあります。サブフォルダAの中には、さらにサブフォルダBがあり、その中にはサブフォルダG1、G2、G3があります。G1、G2、G3の中には、それぞれaaa.exeが存在しています。
  • フォルダ000のバッチファイルからaaa.exeを実行するためには、正しいファイルの指定方法が必要です。ご教示いただけないでしょうか?
回答を見る
  • ベストアンサー

バッチファイルでサブフォルダにあるexeを実行

お世話になります。 バッチファイルをつかって サブフォルダにあるexeファイルの実行を 試みていますが、exeファイルの指定がうまくできず実行できないので、 ご教示いただけないでしょうか。 pushd %%0\.. でバッチファイル実行フォルダをカレントにしています。 バッチファイル実行ファイルがあるフォルダ000に サブフォルダA、そのなかにサブフォルダB、さらにその中にサブフォルダG1,G2,G3 があり、G1,G2,G3の中に、それぞれaaa.exeがあります。 フォルダ000のバッチファイルからaaa.exeを実行するために、 ファイルの指定をどのようにしたらよいかご教示いただけないでしょうか? よろしくお願いいたします。 フォルダ000  batファイル   フォルダA     フォルダB       フォルダG1          aaa.exe       フォルダG2          aaa.exe       フォルダG3          aaa.exe バッチファイル内は、 forループで以下のようにしています。 for /L %%i in (2,1,3) do ( A\B\G%%i\aaa.exe )

質問者が選んだベストアンサー

  • ベストアンサー
  • freetaka
  • ベストアンサー率53% (106/197)
回答No.1

.\を付けるだけでいいです .\A\B\G%%i\aaa.exe みたいな感じです それとG1からG3のフォルダまで対象であれば for文の内容が間違っています 初期値2 増分1 終了値3 となっているので G2とG3のフォルダしか実行しにいきません なので for /L %%i in (1,1,3) do ( .\%A\B\G%%i\aaa.exe ) とすれば3つのフォルダに実行しにいきます わざとそうしているのであれば 元の値に戻してください

kayakayakaya1
質問者

お礼

回答ありがとうございました。 お礼が遅くなり申し訳ありませんでした。 うまく実行することができました。 for文のご指摘もありがとうございます。 実際には、2からなので質問の方がまちがっていました。

その他の回答 (1)

  • notnot
  • ベストアンサー率47% (4845/10256)
回答No.2

pushd %%0\.. が間違っています。 pushd %0\.. が正しい。 なお、普通は、 pushd %~dp0 と書きます。

kayakayakaya1
質問者

お礼

回答ありがとうござます。 お礼が遅くなり申し訳ありません。 はじめは pushd %~dp0 にしていましたが、たしか何かがうまくいかなくて pushd %%0\.. にした記憶がありますが、ご回答のように pushd %~dpにしてうまく回りましたので、 修正しました。 ありがとうございます。

関連するQ&A

  • バッチファイルでexeの場所を検索して起動したい

    A.exeをwinのユーザー環境変数に登録しているか、バッチファイルと同じフォルダに存在するとき、どちらかのA.exeでBコマンドを実行 ただし、cdやpushdを使わず相対パスだけで処理したいのですが、どのように記述すればよいのでしょうか ========================= @echo off setlocal set "CurDir=%~dp0" rem 「A.exeの環境変数のpath」もしくは「%CurDir%A.exe」どちらかのA.exeでBコマンド exit /b =========================

  • IEで接続したサーバ内のバッチファイルを実行したい

    IIS8で仮想ディレクトリを作り、そのディレクトリの参照を有効にする設定にしました。 クライアントからIEでディレクトリの一覧を見ることができるようなったので、そのディレクトリの中のバッチファイルを実行することで、クライアントのPCに、あるソフトが入るようにしたいです。 仮想ディレクトリ(フォルダ名を「A」とします)のフォルダの構成は、フォルダ「A」の直下にあるフォルダ「B」の中に「123.exe」、フォルダ「A」の直下にあるフォルダ「C」に「環境設定.aen」、フォルダ「A」の直下にあるフォルダ「D」には「123.bat」が入っています。 「123.bat」は、「123.exe」を実行した後、PCを再起動させるバッチファイルです。 「環境設定.aen」は、「123.exe」を実行してインストールされるソフトの環境設定のファイルです。 フォルダ「A」 |-フォルダ「B」 | |-123.exe | |-フォルダ「C」 |   |-環境設定.aen | |-フォルダ「D」 |   |-123.bat サーバーは、Windows Server 2012 です。 現在、123.batを実行しようとすると、「404-ファイルまたはディレクトリが見つかりません。」とエラーが出ます。バッチファイルではなく、直接「123.exe」を実行すると、ファイルのダウンロードが始まり、困っています。 質問したいのは、そもそもIEで接続したサーバーのフォルダ内のバッチファイルやexeファイルを実行して、クライアントのPCにソフトをインストールすることはできるのでしょうか? もし、できるのでしたら、方法は問いませんので、こういうやり方があるよというのを教えていただけないでしょうか? よろしくお願いいたします。

  • ショートカットでexeを起動しているが、バッチファイルで同じ事ができないか?

    いつも参考にさせていただいています。 サーバーの共有フォルダに、EXEファイル(aaa.exe)があり、 それを実行するショートカットがクライアントに準備してあります。 このショートカットでは、 ・リンク先 ・作業フォルダ の指定をしています。 今までは、クライアント機の起動時に、サーバーの共有フォルダにネットワークドライブを割り当てていましたが、 バッチファイルで割り当て、プログラム終了と同時にバッチで切断しようと思い立ちました。 そこで、まず、    net use L: \\Server\L という内容のバッチファイルを作成し、ネットワークドライブの割り当ては成功しました。 次に、このバッチファイルに、aaa.exeを起動させるコマンドを記述したいのですが、    call L:\Test\aaa.exe でできそうですが、作業フォルダの指定をどのようにするのかが分かりません。 callのほかに、startというコマンドもありましたが、 こちらでもできるのでしょうか? それと、net useで割り当てた、サーバのLドライブですが、本当はL$で共有フォルダの指定をしたかった(=他のパソコンからは容易に見れないように)のですが、 L$にするとnet use で割り当てできませんでした。 他の方法があるのでしょうか? 質問攻めで申し訳ありませんが、どうかご教授よろしくお願いいたします。

  • バッチファイルでフォルダを作りたい

    ”123”というフォルダの中にバッチファイルがあります このバッチファイルを実行すると、フォルダ名を取得して、”123 あ”というフォルダと ”123 い”というフォルダをフォルダ”123”の中に作りたいのですができるのでしょうか? そして、このバッチファイルをコピーして、フォルダ”456”の中に貼り付けます。 ここでバッチファイルを実行すると、フォルダ”456”のなかに、”456 あ”と”456 い”というフォルダを 作れるようにしたいのですが。 お分かりの方、よろしくお願いいたします。

  • バッチファイルで複数のディレクトリのexe実行

    http://oshiete1.goo.ne.jp/qa4729613.html こちらでも似たような質問をして教えて頂きましたが、もう一つ教えてください。 D: ├─folderA | └─A.exe ├─folderB | └─A.exe └─folderC   └─A.exe カレントはD直下です。 D直下からfolderA、folderB、folderCの名前を指定せずに、 D直下にあるすべてのフォルダの中のA.exeをバッチでそれぞれ実行したいのです。 startでやればいいのかと思いましたが、これでは/sが使えずに削除と同じようにはできませんでした。 よろしくお願いします。

  • バッチファイルによる自動化

    よろしくお願いします。 今、バッチファイルによる作業の自動化をしています。 そこで質問があります。 A.exeという自己複製型ファイルがあります。 それをバッチファイルにより実行します。 すると、パスワードと復号先をダイアログボックスで聞いてきます。 その復号先に自動でC:\AAAと指定するにはどうしたら良いのでしょうか? バッチファイルの中で指定できるものなのか、他に方法はありますか? ちなみに、復号先として初期値がE:\Mydocumentになっています。 A.exeの置き場所の問題では無いようだし、カレントディレクトリも関係ないようで…。 バッチファイルで指定できないかと思い、質問させて頂きました。 以上、よろしくお願い致します。

  • 作業フォルダを指定してコマンドを実行するバッチについて

    とある実行ファイル(D:\aaa\a.exe)を作業フォルダ(D:\bbb)を指定して実行するバッチを作成したいのですが、コマンドラインからはどのようにすれば上記を実現できるのでしょうか? Windowsのショートカットだとプロパティに作業フォルダを指定できるのですが、どうすればよいでしょうか?

  • サブフォルダ内のファイルを全部移動させたい。

    VBScriptのバッチでの作成を考えています。 あるフォルダ(名をFolderとします)の中に、たくさんのサブフォルダが あって、そこにあるファイルをすべてFolderに移動させたいと 思っています。 (ファイルはjpg画像ファイルだけです。) たとえば、Folderの下に、Folder_Bというサブフォルダがあって、 更にその下にFolder_Cがあり、その中には1.jpgというファイルが あったとしたら、バッチ実行後、Folderの直下に1.jpgがあり、 (可能であれば)フォルダはすべて消えているという具合です。 ファイルの移動自体はファイルシステムオブジェクトのFile.Moveで行い、 最後にディレクトリを列挙して削除していけばいいんだろうなという ところはわかります。 しかし、フォルダをサブフォルダも含めてすべて舐めて、そこから ファイルを移動していくというロジックに悩んでいます。 アドバイスいただけないでしょうか。

  • フォルダごとのファイル数を数えるためのバッチ

    フォルダごとのファイル数を数えるためのバッチをネットで調べて作成しました。 このバッチファイルを親フォルダ直下に配置し、ダブルクリックで実行しています。 ------------------------------------------------------------------------- @echo off setlocal enabledelayedexpansion set /a counter=0 dir %1 /ad /s /b >trash.csv for /f "tokens=1 delims=," %%i in (trash.csv) do ( set /a counter = 0 for %%A in (%%i\*) do ( if exist %%A ( set /a counter=counter+1 ) ) echo %%i : !counter! ) ------------------------------------------------------------------------- しかし、結果は、フォルダ名は取得していますが、ファイル数が取得できていません。 こんな感じです。 setlocal コマンドに無効なパラメータが指定されました d:\画像\フォルダ1 = 0 d:\画像\フォルダ2 = 0 d:\画像\フォルダ1\フォルダ3 = 0 どたなかどこが間違っているのかご指摘ください。

  • バッチファイルのタスクスケジューラでの実行について教えて下さい。

    AAAのパソコンのDドライブの111というフォルダを、ネットワーク経由でBBBのパソコンのDドライブの222という共有フォルダ内に333というフォルダ内へxcopyでコピーするバッチ(backup.bat)を作ってタスクスケジューラで1日1回自動実行させようと思うのですが、うまくいきません。どうすればよいのでしょうか? AAAパソコン:Windows2000 professional SP4        000フォルダ内にbackup.bat(共有フォルダではないです)        111フォルダは共有フォルダではないです        ユーザーアカウント⇒Administrator        パスワードはないです        BBBパソコン:WindowsXP professional SP2        222フォルダは共有フォルダ        333フォルダは222の共有フォルダの中        ユーザーアカウント⇒バックアップ        パスワード⇒123 バッチファイル(backup.bat)  ↓  net use \\BBB\222 123 /user:バックアップ  xcopy d:\111 \\BBB\222\333\ /E/C/F/H/R/K> d:\バックアップログ.log  net use \\BBB\222 /delete 上記バッチファイルをAAAパソコンの「タスクの実行するファイル名」に直接登録(d:\000\backup.bat)して実行させてみたのですが、タスクの詳細設定のログ表示でログを見ると、『タスクは次の終了コードで完了しました:(1).』となっていて実行されませんでした。 cmd.exe /c d:\000\backup.batでタスク登録してもだめでした。 バッチファイル(backup.bat)をダブルクリックして実行するとBBBパソコンにコピーできます。 タスク設定時の   実行するアカウント名⇒AAA\Administrator   パスワードはなし よろしくお願いいたします。