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变量的末尾留下了额外的\。我该如何解决这个问题?
答案 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应用程序代替命令行,因为它不那么复杂。