2012-04-20 28 views
1

バッチファイルがあります(下記のコードを参照)。 Visual Studioのコマンドプロンプトでtfコマンドを実行する必要があるためです。 私はvisual studioコマンドを呼び出します。バッチファイルを実行する+ Visual Studioコマンドプロンプトを呼び出す

ただし、バッチファイルの実行が停止します。 誰かがアイデアを持っていますか?

 REM @echo off 
     REM ... Change the path below. This is the path where the code will be downloaded! 
     REM Z: 
     REM cd Backup_TFS_Preview 
     call %comspec% /k ""C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"" x86 

     REM ... Navigate to folder 
     Z: 
     cd Backup_TFS_Preview 

     REM ... Makes folder with date today 
     mkdir %Date:~-10,2%-%Date:~-7,2%-%Date:~-4,4% 

     REM ... Navigate to folder 
     cd %Date:~-10,2%-%Date:~-7,2%-%Date:~-4,4% 

     REM ... Add workspace for the folder with date of today 
     tf workspace /new %Date:~-10,2%-%Date:~-7,2%-%Date:~-4,4% /noprompt 

     REM ... Get all items from TFS 
     tf get /recursive /all /noprompt 

     REM ... Navigate to folder 
     cd .. 

     REM ... Zip the folder 
     C:\TFS_Backup_Scripts\7z.exe a %Date:~-10,2%-%Date:~-7,2%-%Date:~-4,4%.zip %Date:~-10,2%-%Date:~-7,2%-%Date:~-4,4%\ 

     REM ... Remove folder 
     rmdir %Date:~-10,2%-%Date:~-7,2%-%Date:~-4,4%\ /s /q 

     REM ... Delete workspace 
     tf workspace /delete %Date:~-10,2%-%Date:~-7,2%-%Date:~-4,4% /noprompt 

     REM ... Navigate to folder 
     cd .. 
     cd .. 

     REM ... Delete zip files that are older then 10 days 
     forfiles -p "Z:\Backup_TFS_Preview" -s -m *.* -d -10 -c "cmd /c del /q @path" 
+1

どのtf回線で障害が発生していますか。 –

+0

コール後に停止します。 – Sven

+0

@Sven iamは実際にJenkinsから自動化して同じことをしようとしていて、tfが認識されたコマンドではないというエラーメッセージを受け取りました。 - あなたがまだそれを持っている場合、絶対的な道であなたの働くソリューションを共有する気に?ありがとう – uniXVanXcel

答えて

0

私は別の方法でそれを解決しました。私はtf.exeのフルパスを使いました。コマンドプロンプトでも動作します。

電話の応答は私のために働いていません。

0

cmdプロンプトからコールを実行するとどうなりますか?

vcvars32.bat(vcvarsall.batによって呼び出される)の終了コード(0または1)にも注意してください。vcvarsall.batを実行した後にエコー%errorlevel% を実行します。ゼロの場合、コマンドは正常に完了しました。

、あなたがしようとDBL "を除去することがあります" のように: コール%COMSPEC%/ K "C:\プログラムファイルのMicrosoft Visual Studioの破ることができたx86 " vcvarsall.bat 10.0 \ VC \ \(x86の)空白までの悪いpararametersにcmdと文は多分%ERRORLEVEL%右コール行の後

最後のためのテストは、呼び出し文でC /に/ Kを変更

をエスケープされていません。

ポスト結果

4

%のCOMSPECの%/ kがコマンドプロンプトを実行して、周りのcmd.exeを保持します。そのcmd.exeが返るまで、バッチファイルは続行されません。

/kを/ c(これはcmd.exeを守らない)に置き換えても、新しいコマンドプロンプトからの環境変数はこれに保存されないため、機能しません。

あなたは、単に必要があります。

call %VS100COMNTOOLS%\vsvars32.bat 

それとも

call %VS100COMNTOOLS%\..\..\VC\vcvarsall.bat x86 
+0

私を助けません。スクリプト全体を実行しますが、Visual Studioのコマンドプロンプトは使用しません。 tfは内部コマンドまたは外部コマンドとして認識されないためです。 – Sven

関連する問題