2017-02-23 31 views
0

我需要從批處理腳本中執行命令「svnversion」以獲取我的svn文件夾的當前修訂版本。使用相對路徑執行一個命令並將該命令的返回值保存在批處理腳本中

如果我只運行命令,它會在我的svn文件夾外執行。所以我需要從我的文件夾運行命令svnversion。

我試圖像

@echo off 
set PATH=%cd% 
echo %PATH% // Just for debugging purpose 
for /f "delims=" %%i in ("%PATH%" 'svnversion') do set VERSION=%%i 
@echo %VERSION% 

我想是去路徑e.g「C:\文件夾\ SVN \行李箱」,並執行命令「svnversion,如果」並保存它返回的返回值。

如果我跑我的腳本形成了CMD它工作不涉及道路,但批處理腳本是在我的構建環境和執行路徑似乎當我編譯我的批處理腳本項目是錯誤的。

+1

** **從未(過)寫'PATH'變量,它由系統找到可執行文件! – aschipfl

回答

-3

想通了,只需添加CD%〜PD0

@echo off 
cd %~pd0 
for /f "delims=" %%i in ('svnversion') do set VERSION=%%i 
@echo %VERSION% 
+0

請加倍努力,閱讀您的代碼並查看是否可以發現任何錯誤。 – Compo

+0

不太明白你的意思。它現在就像我希望的那樣工作,實際上我對此非常滿意, – Keexarian

+0

我可以理解錯誤,但現在你有機會審查它,並且仍然認爲它是正確的。我會爲你拼寫出來;你的代碼錯了! – Compo

相關問題