2009-11-11 3 views
1

У меня есть пакетный скрипт, который принимает аргументы из командной строки. В одном из аргументов есть *. Несмотря на то, что аргумент помещается в кавычки, * расшифровывается до того, как аргумент будет использован в пакетном скрипте.Asterisk (*) в командной строке командного файла оконного файла расширяется

Я использую следующий код для разбора аргументов:

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

Это работает на Windows Server 2003, но не на сервере 2008 по некоторым причинам.

+1

Что вы ожидаете от этого и что он делает сейчас? К чему это расширилось? – GolezTrol

ответ

0

Это было долгое время, так как я не делал ничего подобного, но посмотрите на

SETLOCAL ENABLEDELAYEDEXPANSION 

Не уверен, что Windows Server 2008 по умолчанию.

+0

Ничего не изменит, если он работает на одной системе, а не на другой. Кроме того, это не цикл 'for'. – Joey

Смежные вопросы