2009-05-20 61 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)*"