2009-05-20 93 views
1

Visual Studio 2005: 我正在從後期構建事件轉移到使用帶批處理文件的外部工具菜單。Visual Studio外部工具參數問題

以前我有

cd "$(ProjectDir).." 
for /f "tokens=2,3,4 delims=/ " %%a in ('date /t') do set bdate=%%c.%%a.%%b 
pkzipc -add -overwrite -dir=current "Z:\Technology\VisualStudio2005\Project Zips\$(ProjectName)_%bdate%_%username%.zip" "$(ProjectDir)*" 

當我嘗試使用這個,因爲它包「」周圍的項目名的外部工具,並增加了一個額外的\上SolutionDirectory(我不知道如果我想項目或解決方案目錄展望未來,既不似乎工作)

的代碼,我嘗試使用:

pkzipc -add -overwrite -dir=current Z:\Technology\VisualStudio2005\Project Zips\%2\%2_%bdate%_%username%.zip %1* 

這個代碼不工作,我認爲第一部分剝離出來方「」被回答,這會在projectdir變量的結尾留下額外的\。我該如何解決這個問題?

+0

看來這可能不像預期的那樣工作,因爲目標目錄指向/ obj文件夾而不是/ debug。所以它錯過了你解決方案的所有支持項目。選擇解決方案文件本身並運行外部工具將返回Visual Studio IDE目錄或解決方案目錄,但仍不是解決方案的目標文件夾。 – Maslow 2009-05-26 17:52:14

回答

0

我結束了使用定製的.NET應用程序,而不是命令行爲此,因爲這種方式不那麼複雜。

1

我不知道我跟着你(而且也沒有直接的問題),但如果你有雙引號內的參數,要刪除它們,你可以使用另一個變量:

set THEDIR=%1 
set THEDIR=%THEDIR:"=% 
+0

還沒有測試,但聽起來像這有助於一個參數,那額外的\? 我的問題是我試圖使用的代碼不工作,因爲這些額外的附件我需要的數據,我不熟悉dos/win批處理文件。 – Maslow 2009-05-20 23:52:12

+0

這在命令提示符下工作正常,但由於我的問題評論中有其他原因,外部工具並未做我認爲我需要實現的操作。 – Maslow 2009-05-26 17:53:14

0

您還可以修剪最後一個字符掉這樣的:

SET SOMEVAR=%SOMEVAR:~0,-1% 

如果報價和\出現在同一個變量,你可以這樣做,而不是:

SET SOMEVAR=%SOMEVAR:~1,-2% 
+0

是否有某處可以引用這些命令以供將來使用?我搜索了dos批處理文件,但找不到任何詳細/複雜的內容。 – Maslow 2009-05-21 12:43:15

0

您可能設置了外部工具錯誤,您需要將pkzipc的完整路徑放在命令:字段中,並將參數置於參數:
你也不必訪問腳本PARAMS所以%1%2是行不通的,你argaument字段應該然後:

-add -overwrite -dir=current "Z:\..\$(ProjectName)_%bdate%_%username%.zip" "$(ProjectDir)*"