Visual studio Visual Studio外部工具参数问题

Visual studio Visual Studio外部工具参数问题,visual-studio,batch-file,Visual Studio,Batch File,Visual studio 2005: 我正在从生成后事件转移到使用带有批处理文件的外部工具菜单 以前我有 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)_%bd

Visual studio 2005: 我正在从生成后事件转移到使用带有批处理文件的外部工具菜单

以前我有

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上添加一个额外的\项(我不确定是否希望继续使用project或solution dir,两者似乎都不起作用)

我正在尝试使用的代码:

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

这段代码不起作用,我想第一部分的“外部”被回答了,这会在projectdir变量的末尾留下额外的\号。如何解决这个问题?

我不确定我是否在跟踪您(也没有直接的问题),但如果您有一个被引号括起来的参数,并且希望删除它们,则可以使用另一个变量:

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

我不确定我是否在跟踪您(没有直接的问题),但是如果您有一个被引号包围的参数,并且希望删除它们,则可以使用另一个变量:

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

您还可以按如下方式修剪最后一个字符:

SET SOMEVAR=%SOMEVAR:~0,-1%
如果引号和\出现在同一个变量中,则可以改为:

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

您还可以按如下方式修剪最后一个字符:

SET SOMEVAR=%SOMEVAR:~0,-1%
如果引号和\出现在同一个变量中,则可以改为:

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

您可能将外部工具设置错误,需要将pkzipc的完整路径放在Command:字段中,并将参数放在参数中:。
此外,您没有访问脚本参数的权限,因此%1%2将无法工作,您的参数字段应为:

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

您可能将外部工具设置错误,需要将pkzipc的完整路径放在Command:字段中,并将参数放在参数中:。
此外,您没有访问脚本参数的权限,因此%1%2将无法工作,您的参数字段应为:

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

我最终使用了一个定制的.net应用程序,而不是命令行,因为这样比较简单。

我最终使用了一个定制的.net应用程序,而不是命令行,因为这样比较简单。

还没有测试过,但听起来这对一个参数很有帮助,额外的钱呢?我的问题是,我尝试使用的代码不起作用,因为我需要这些额外的数据附件,而且我对dos/win批处理文件不太熟悉。在命令提示符下,这可以正常工作,但由于我的问题注释中的其他原因,外部工具并没有达到我认为需要达到的效果。我还没有测试过,但听起来这对一个论点很有帮助,那么额外的呢?我的问题是,我尝试使用的代码不起作用,因为我需要这些额外的数据附件,而且我对dos/win批处理文件不太熟悉。在命令提示符下,这可以正常工作,但由于我的问题注释中的其他原因,外部工具没有完成我认为需要完成的任务。我设置的命令是一个包含此信息的批处理文件,因为%bdate%不是实际的环境变量,需要每天更改。我设置的命令是一个包含此信息的批处理文件,由于%bdate%不是实际的环境变量,需要每天更改。是否有地方可以引用这些命令以供将来使用?我搜索了dos批处理文件,但找不到任何如此详细/复杂的文件。通过运行SET/,可以找到有关子字符串和字符串替换的详细信息?其他有用技巧的优秀来源是CMD/?对于/?来说,它似乎直接在cmd提示符下工作,但在通过Visual Studio中的外部工具链接的批处理文件中不工作。是否有地方可以引用这些命令以供将来使用?我搜索了dos批处理文件,但找不到任何如此详细/复杂的文件。通过运行SET/,可以找到有关子字符串和字符串替换的详细信息?其他有用技巧的优秀来源是CMD/?对于/?来说,它似乎直接在cmd提示符下工作,但在通过Visual Studio中的外部工具链接的批处理文件中不起作用。由于目标目录指向/obj文件夹,而不是/debug,因此它可能没有预期的效果。因此,它错过了解决方案的所有支持项目。选择解决方案文件本身并运行外部工具会返回Visual Studio IDE目录或解决方案目录,但仍然不是解决方案的目标文件夹。由于目标目录指向的是/obj文件夹而不是/debug,因此这可能不如预期的效果好。因此,它错过了解决方案的所有支持项目。选择解决方案文件本身并运行外部工具将返回VisualStudioIDE目录或解决方案目录,但仍然不是解决方案的目标文件夹。