2012-02-03 16 views
2

バッチファイル2(C: )からバッチファイル1(パスC:\ 3rdparty \ Test \ App)を実行したいと思いますが、VS2008.slnはC:\ 3rdparty \バッチファイル1別のバッチファイルからバッチファイルを実行する

REM BatchFile1.bat 

set DEVENV_PATH=%VS90COMNTOOLS%..\IDE 

REM --------------------------------------------------------------------- 

set OUTDIR=.\output\windows\x86 
rmdir /S /Q %OUTDIR% 
mkdir %OUTDIR% 

call "%DEVENV_PATH%\devenv.com" VS2008\VS2008.sln /Rebuild "Release|Win32" 
call "%DEVENV_PATH%\devenv.com" VS2008\VS2008.sln /Rebuild "Debug|Win32" 

REM --------------------------------------------------------------------- 

set OUTDIR=.\output\windows\x64 
rmdir /S /Q %OUTDIR% 
mkdir %OUTDIR% 

call "%DEVENV_PATH%\devenv.com" VS2008\VS2008.sln /Rebuild "Release|x64" 
call "%DEVENV_PATH%\devenv.com" VS2008\VS2008.sln /Rebuild "Debug|x64" 

REM --------------------------------------------------------------------- 


echo "BatchFile1.bat completed." 

バッチファイル2

echo "Running Batch File 2" 
call C:\3rdparty\Test\App\BatchFile1.bat 

テスト\アプリケーション\ VS2008

パスが異なるため、ここでbatchfile1がBatchfile2から呼び出されたときには、VS2008.slnを実行することはできません。 Iバッチファイル1を変更したくありません。バッチファイル2を変更してバッチファイル1を実行することは可能ですか?

答えて

4

ディレクトリをBatchFile1のディレクトリに変更してみてください。

echo "Running Batch File 2" 
cd C:\3rdparty\Test\App 
call BatchFile1.bat 
1

私はそれが何であれ、BatchFile1パスに設定されているスクリプトにローカル変数を追加しましたので、今はBatchFile1パスに相対パスを使用することができます。

REM BatchFile1.bat 

set scriptPath=%~dp0 
set scriptPath=%scriptPath:~0,-1% 

rem now %scriptPath% contain the script path, and then you can use command like 
rem "%scriptPath%\MyCommand.exe" /MyParameter=123_abcd 


set DEVENV_PATH=%VS90COMNTOOLS%..\IDE 

REM --------------------------------------------------------------------- 

set OUTDIR=.\output\windows\x86 
rmdir /S /Q %OUTDIR% 
mkdir %OUTDIR% 

call "%DEVENV_PATH%\devenv.com" "%scriptPath%\VS2008\VS2008.sln" /Rebuild "Release|Win32" 
call "%DEVENV_PATH%\devenv.com" "%scriptPath%\VS2008\VS2008.sln" /Rebuild "Debug|Win32" 

REM --------------------------------------------------------------------- 

set OUTDIR=.\output\windows\x64 
rmdir /S /Q %OUTDIR% 
mkdir %OUTDIR% 

call "%DEVENV_PATH%\devenv.com" "%scriptPath%\VS2008\VS2008.sln" /Rebuild "Release|x64" 
call "%DEVENV_PATH%\devenv.com" "%scriptPath%\VS2008\VS2008.sln" /Rebuild "Debug|x64" 

REM --------------------------------------------------------------------- 


echo "BatchFile1.bat completed." 
0

あなたはbatchfile1がどこにカレントディレクトリを変更してから戻って変化するであろう

batchfile1.bat

であなたのコードの周りに

pushd %~dp0 

popd 

を入れることができますあなたが終わったら

関連する問題