Visual Studio外部工具参数问题

时间:2009-05-20 21:22:40

标签: visual-studio batch-file

Visual Studio 2005: 我正在从post build事件转到使用带有批处理文件的外部工具菜单。

以前我有

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变量的末尾留下了额外的\。我该如何解决这个问题?

4 个答案:

答案 0 :(得分:1)

我不确定我是否关注你(并且没有直接的问题),但是如果你有一个被引号括起来的参数而你想放弃它们,你可以使用另一个变量:

set THEDIR=%1
set THEDIR=%THEDIR:"=%

答案 1 :(得分:0)

你也可以像这样修剪最后一个字符:

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

如果引号和\出现在同一个变量中,则可以改为:

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

答案 2 :(得分:0)

您可能错误地设置了外部工具,您需要在 Command:字段中放置pkzipc的完整路径,并将参数放在 Arguments:中。
此外,您无法访问脚本参数,因此%1%2将无法正常工作,您应该使用该字段:

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

答案 3 :(得分:0)

我使用自定义构建的.net应用程序代替命令行,因为它不那么复杂。