gpt4 book ai didi

batch-file - 如何使 SHIFT 在批处理文件中与 %* 一起使用

转载 作者:行者123 更新时间:2023-12-03 08:30:19 25 4
gpt4 key购买 nike

在 Windows XP 上的批处理文件中,我想使用 %*扩展到除第一个参数之外的所有参数。 测试文件 (foo.bat):

@echo off
echo %*
shift
echo %*

称呼:
C:\> foo a b c d e f

实际 结果:
a b c d e f
a b c d e f

欲购 结果:
a b c d e f
b c d e f

我怎样才能达到预期的结果?谢谢!!

最佳答案

如果 CMD.EXE 以这种方式工作,那岂不是很棒!不幸的是,没有一种好的语法可以满足您的需求。您能做的最好的事情就是自己解析命令行并构建一个新的参数列表。

像这样的东西可以工作。

@echo off
setlocal
echo %*
shift
set "args="
:parse
if "%~1" neq "" (
set args=%args% %1
shift
goto :parse
)
if defined args set args=%args:~1%
echo(%args%

但是,如果参数包含特殊字符,如 ^,则上述内容会出现问题。 , & , > , < , |被转义而不是引用。

参数处理是 Windows 批处理编程的众多弱点之一。对于几乎所有解决方案,都存在导致问题的异常。

关于batch-file - 如何使 SHIFT 在批处理文件中与 %* 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9363080/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com