gpt4 book ai didi

windows - 如何将以 "!"结尾的参数传递给另一个bat文件?

转载 作者:可可西里 更新时间:2023-11-01 11:17:55 26 4
gpt4 key购买 nike

我有两个 bat 文件,我需要将三个参数从一个 bat 文件传递​​到另一个。但是,如果参数以“!”结尾未收到参数

调用者.bat

impl.bat param1 param2! param3

impl.bat

echo %1
echo %2
echo %3
运行 caller.bat 后的

预期结果:

param1
param2!
param3
运行 caller.bat 后的

实际结果:

param1
param2
param3

任何人都可以帮助我如何实现实际结果吗?

最佳答案

正如其他答案所说,可以禁用延迟扩展,但没有必要显示感叹号。

将感叹号(和其他特殊字符)放入变量中很重要。
然后你可以完美地使用它延迟扩展

示例

@echo off
set "param1=%~1"
set "param2=%~2"
setlocal EnableDelayedExpansion
echo Works: !param1! !param2!
echo FAILS: %param1% %param2%

调用
myBatch.bat arg1! "arg2!<>&"

延迟扩展的优点是可以处理任何内容而没有副作用,因为扩展的内容将不再被解析。
在许多情况下,百分比扩展会失败,因为内容也会针对特殊字符进行解析

关于windows - 如何将以 "!"结尾的参数传递给另一个bat文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30363385/

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