2009-11-11 121 views
1

我有一个从命令行接受参数的批处理脚本。其中一个论据有*。尽管将参数放在引号中,在批处理脚本中使用参数之前*会展开。Windows批处理文件命令行参数中的星号(*)得到扩展

我使用下面的代码来解析参数:

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 2013-02-09 09:06:36

回答

0

以来,它一直我做了这样的事,但看看

SETLOCAL ENABLEDELAYEDEXPANSION 

不知道是什么的Windows Server 2008默认为很长的时间。

+0

如果它在一个系统上工作而不在另一个系统上,它不会改变任何东西。此外,这不是'for'循环。 – Joey 2010-02-18 01:46:25

相关问题