在Windows批处理文件命令行参数中,星号(*)会被扩展。

3

我有一个批处理脚本,从命令行获取参数。其中一个参数中包含一个*号。尽管将参数放在引号中,但在批处理脚本使用参数之前,*号仍然会被展开。

我正在使用以下代码解析参数:

set CMDLINE_ARGS=%~1
shift 
:get_args 
if "%~1" == "" goto execute
set CMDLINE_ARGS=%CMDLINE_ARGS% %~1
shift
goto :get_args

这在Windows Server 2003上可以工作,但由于某些原因在Server 2008上无法工作。


1
你期望它做什么,现在它做了什么?它扩展到什么地步了? - GolezTrol
1个回答

0

我已经很久没有做过这样的事情了,但是看一下

  SETLOCAL ENABLEDELAYEDEXPANSION

不确定Windows Server 2008的默认设置。


如果在一个系统上运行正常而在另一个系统上不正常,那么什么都不会改变。此外,这不是一个“for”循环。 - Joey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接