gpt4 book ai didi

batch-file - 有没有一种简单的方法可以在 Windows 批处理文件中定义和使用复杂的文字字符串,而无需手动转义每个特殊字符?

转载 作者:行者123 更新时间:2023-12-05 09:27:18 24 4
gpt4 key购买 nike

背景

我正在尝试创建一个可以使用 azcopy 将文件复制到 Azure 存储资源管理器的批处理文件。我只想将我的 SAS key 复制并粘贴到我的批处理文件中,而不必每次都找到并转义所有特殊字符(&、= 等)。

我的问题

如何在批处理文件中使用这些字符轻松定义复杂的字符串,这样它们就不会被解释,也不必手动将它们转义?这可能吗?例如,是否有一些关键字或其他东西我可以添加到 set 语句中,基本上告诉它,“嘿,这个变量值中的所有字符都应该按原样使用,没有任何解释”?

我看过的一些资源

在某些语言中,您将变量值放在双引号中以使其成为文字。我不确定如何在批处理文件中执行此操作。

一个例子

假设我有这个伪 key :

nifty-11-stuff%3A28GOOBER%3A5&se=2022

假设我想完全按照变量中的原样保留和使用这个字符串,这样如果我稍后在我的批处理命令中使用它,它就不会发生变化。

我试过这段代码(带引号):

@echo off
setlocal EnableDelayedExpansion
set SAS="nifty-11-stuff%3A28GOOBER%3A5&se=2022"
echo %SAS%
pause

我在 VSCode 中的终端输出是这样的:

PS D:\git\documentationutilities> cmd /c "d:\git\documentationutilities\test.bat"
"nifty-11-stuffA28GOOBERA5&se=2022"

请注意 %3A 实例正在被解释并因此从最终值中删除。

提前感谢您提供的任何帮助。

最佳答案

百分号甚至没有进入字符串(使用set var 验证),所以我使用了一个包含您的确切字符串的文本文件。延迟展开避免字符串被解析:

@echo off
setlocal EnableDelayedExpansion
<test.txt set /p "var="
set var
echo var=!var!

关于batch-file - 有没有一种简单的方法可以在 Windows 批处理文件中定义和使用复杂的文字字符串,而无需手动转义每个特殊字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72691819/

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