Windowsバッチファイルの作成方法について質問させて下さい。

以下の処理を行うバッチファイルの作成を考えています。
・C:\Program Files\Microsoft Visual Studio 8\VCへ移動
・上記フォルダ内にある vcvarsall.batファイルを実行
・C:\Program Files\Microsoft Platform SDKへ移動
・上記フォルダ内にある SetEnv.cmdファイルを実行
・Cドライブ直下(C:\)へ移動

目的としては、「Microsoft Visual C++2005」の環境設定ファイルを
バッチファイルにて一括実行することです。

実際に自分で作成したバッチファイル(setenv.bat)の内容は
以下のとおりです。
----------------------------------------------------------
@echo off

echo setenv.batを実行します
cd C:\Program Files\Microsoft Visual Studio 8\VC
echo vcvarsall.batを実行して環境設定をおこないます
vcvarsall.bat
cd C:\Program Files\Microsoft Platform SDK
echo SetEnv.cmdを実行して環境設定をおこないます
SetEnv.cmd
cd C:\
----------------------------------------------------------

[実行結果]
C:\>setenv.bat
setenv.batを実行します
vcvarsall.batを実行して環境変数を設定します
Setting environment for using Microsoft Visual Studio 2005 x86 tools.

実行結果のとおり、setenv.batの実行までしか処理が行われず、
vcvasall.batは実行されません。

原因と対処方法について、どなたか教えて頂けませんでしょうか?

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

A 回答 (3件)

バッチからバッチを呼び出すときは「call」を使います。



  http://ykr414.com/dos/dos05.html#06
    • good
    • 0
この回答へのお礼

非常に参考になりました。
おかげさまで問題解決できました。
ありがとうございます。

お礼日時:2008/03/26 21:12

>実行結果のとおり、setenv.batの実行までしか処理が行われず、


>vcvasall.batは実行されません。

vcvarsall.bat は実行されてるんじゃない?
その後、もとのバッチファイルに制御が戻らずに SetEnv.cmd が実行されていないのでは?

単純なのは、vcvarsall.bat の中身をまんま my_vcvarsall.bat としてコピーして、その中に
SetEnv.cmd を実行するステップを追加する。

この回答への補足

ご指摘のとおり、正しくは「SetEnv.cmdが実行されていない」です。
失礼しました。

補足日時:2008/03/26 20:54
    • good
    • 0

バッチファイルからバッチファイルを動かすには


CALL ~bat
と記述します。

一度お試しください。
    • good
    • 0
この回答へのお礼

教えて頂いた方法で問題解決できました。
ありがとうございました。

お礼日時:2008/03/26 21:13

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

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

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

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

QDownloaded Program Files

パソコンに不都合があり 最適化
インターネットオプションから cookie の削除 ファイルの削除 履歴のクリア しました。
その際 インターネット一時ファイル→ 設定 → オブジェクトの表示 ここで ファイル内にあったモノも
3つほどしかなかったのでファルダ内全て削除しました。 このファイルにあったものを消して問題なかったでしょうか?
削除後起動しなおしてパソコンをしてますが問題はないです。

Aベストアンサー

それはIEで開いたときに自動でインストールされるモノなので、いま問題ないなら大丈夫です。
快適なネットサーフィンを楽しんで下さい♪

Qbatファイルの実行について

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ファイルを作成しました。
(ATコマンドにてスケジュールさせたいと考えてます。)

ファイル自体をダブルクリックで実行すると正常に処理が完了しますが、コマンドプロンプトから実行しようとすると以下のエラーが発生します。
〓〓〓〓〓〓〓〓〓〓〓〓
C:\>cmd /c "E:\MirroringTool\SimpleFolderMirror\test.bat"

指定した名前は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されません。
〓〓〓〓〓〓〓〓〓〓〓〓

実行させたいbatファイルは以...続きを読む

Aベストアンサー

cd %EXEFOLDER_PATH%
のコマンドオプション /D がないのでエラー発生

次の行でのSimpleFolderMirror.exeを見つけられないのではないですか?


CD %EXEFOLDER_PATH%

CD /D %EXEFOLDER_PATH%

Qbatファイルの強制終了を回避したい

batファイルを作成する際、
batファイルに書かれた処理が終わると、batファイルは終了してしまいますが、それを回避したいです。

例えば、カレントディレクトリをE:\work_folderにして作業をしたいときに、
cd E:\work_folder;
とだけ記述されているbatファイルを作ったら、
ディレクトリを変更したらそのまま終了してしまって、
作業を続けられませんし、

また、
cd E:\work_folder;
pause;
と記述したら、『続行するには何かキーを押してください . . .』
のメッセージの後、何かのキーを押した後に、結局DOSプロンプトは閉じてしまいます。

継続してコマンドを打ちたいのですが不可能でしょうか??
宜しくお願いします。

Aベストアンサー

そのバッチファイルはそのまま使うことにして、別の起動オプションをつけたショートカットを作るのがシンプルです。

CMDコマンドには /k オプションがあり、これを指定するとウィンドウを閉じません。
CMD /k xxx.bat

QバッチファイルのPAUSE

バッチファイルのPAUSEを使って、
実行するかどうか待機状態のまま
指定時間何もキーを触らなければ
自動的に黒のコマンドプロンプトを
終了させる方法はないですか?

Aベストアンサー

Option Explicit

Dim objWshShell
Set ObjWshShell = WScript.CreateObject("WScript.Shell")

Dim result
result = objWshShell.Popup("10秒待ちます",10,"タイトル",vbOKCancel)

if result = vbOK Then
objWshShell.Run "A.EXE",1
End If
-----------------------------------
こんな感じでOKです。

スクリプト側でA.EXEの終了待ちを行いたい場合は、
objWshShell.Run "A.EXE",1,True
と、最後にTrueを追加してください。

Qバッチファイルの作成方法

バッチファイルの初心者です。
下記のようなバッチを作成したいと思っています。

(1)本日の日付のディレクトリを作成する。
(2)そのディレクトリに数時間毎に作成される***.logを全て移動する。
(3)3日前に作成したディレクトリを削除する。

以上のような流れのバッチファイルは簡単に作成できるのでしょうか?

Aベストアンサー

作れない事はないですが、非常に複雑になりお奨めできません。

(1)と(2)は簡単なんですが、(3)の3日前の部分で複雑になります。

ちなみに、(1)と(2)の部分は
これでYYYYMMDDディレクトリを作成し、*.logファイルを移動します。エラー処理はしてませんので適当に。

VBscriiptかプログラムを書いたほうがすっきりします。

set dname=%date:~0,4%%date:~5,2%%date:~8,2%
md %dname%
copy *.log %dname%
del *.log

参考URL:http://www.atmarkit.co.jp/fwin2k/win2ktips/419batchdate/batchdate.html


人気Q&Aランキング

おすすめ情報