2013-10-13 24 views
2

我試圖自動執行構建過程,但我遇到了一個腳本參數問題。SVN批處理腳本中的參數未被替換

我存儲參數,然後在命令行中調用svn checkout %repository%時替換它的值。

問題是,它不能代替我得到下面的輸出:

PS C:\Users\Administrator\Desktop> .\Build_Script.bat "https://mitchellt/svn/Test_Repositry/Test_Application" 

C:\Users\Administrator\Desktop>rem * Need to check directory exists 

C:\Users\Administrator\Desktop>rem Variables 

C:\Users\Administrator\Desktop>set date=13_10_2013 

C:\Users\Administrator\Desktop>set time=16-56-48 

C:\Users\Administrator\Desktop>set repository = https://mitchellt/svn/Test_Repositry/Test_Application 

C:\Users\Administrator\Desktop>rem Change to build directory 

C:\Users\Administrator\Desktop>cd C:\Build 

C:\Build>rem Make Directory for Build based on today's date 

C:\Build>mkdir 13_10_2013_16-56-48 

C:\Build>rem Change to new directory 

C:\Build>cd 13_10_2013_16-56-48 

C:\Build\13_10_2013_16-56-48>rem Create folders for the source code, built product & test results 

C:\Build\13_10_2013_16-56-48>mkdir Source 

C:\Build\13_10_2013_16-56-48>mkdir Product 

C:\Build\13_10_2013_16-56-48>mkdir Results 

C:\Build\13_10_2013_16-56-48>rem Change to source directory 

C:\Build\13_10_2013_16-56-48>cd Source 

C:\Build\13_10_2013_16-56-48\Source>rem Copy the source code from the repository 

C:\Build\13_10_2013_16-56-48\Source>svn checkout 
svn: E205001: Try 'svn help checkout' for more information 
svn: E205001: Not enough arguments provided 
PS C:\Users\Administrator\Desktop> 

CODE:

@ECHO ON 
@SETLOCAL 
rem * Need to check directory exists 

rem Variables 
set date=%DATE:/=_% 
set time=%time:~0,2%-%time:~3,2%-%time:~6,2% 
set repository = %1 

rem Change to build directory 
cd C:\Build 

rem Make Directory for Build based on today's date 
mkdir %date%_%time% 

rem Change to new directory 
cd %date%_%time% 

rem Create folders for the source code, built product & test results 
mkdir Source 
mkdir Product 
mkdir Results 

rem Change to source directory 
cd Source 

rem Copy the source code from the repository 
svn checkout %repository% 

回答

5

的問題是在set repository = %1的空間和批處理文件是空間敏感(有時只有些地方)。
這將創建一個名爲變量repository<space>

只需將其更改爲

set repository=%1 

或者更好

set "repository=%~1" 

因爲這也防止與追加,invisble空間問題%1

+0

後嗨,謝謝你的迴應,那已經完成了這項工作:) – mitchellt