Board logo

标题: 批处理脚本参数处理问题 [打印本页]

作者: hbrqlpf     时间: 2009-5-7 05:46    标题: 批处理脚本参数处理问题

test.bat脚本内容如下:

@echo off

:beginparsepara
if "%1" == "" goto endparsepara
if "%1" == "/a" (
   set paraa=%2
   shift
)
if "%1" == "/b" (
   set parab=%2
   shift
)
if "%1" == "/c" (
   set parac=%2
   shift
)
shift
goto beginparsepara
:endparsepara

echo %paraa%
echo %parab%
echo %parac%

在命令行下运行脚本:testpara.bat /a "a a" /b "b b" /c "c c"
返回结果:此时不应有 a""。

请问如何才能使返回结果是如下形式:
"a a"
"b b"
"c c"
也就是可以让参数中含有空格,谢谢大家
作者: netbenton     时间: 2009-5-7 13:04
使用变量延迟:
setlocal enabledelayedexpansion
把参数传递给变量再判断:
set cs=%1
if "!cs!"=="/a" (set paraa=%2
shift
shift
)
...
作者: hbrqlpf     时间: 2009-5-7 22:25
谢谢楼上,问题解决了