gpt4 book ai didi

variables - 如何防止Windows批处理文件中的for循环中的变量解析(或转义百分号)?

转载 作者:行者123 更新时间:2023-12-04 17:49:40 33 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Ignore percent sign in batch file

(6 个回答)


3年前关闭。




例如,我有这样一个循环,它在名称包含百分号的文件夹上调用 dir ,因此解释器尝试将这些字符之间的字符解析为变量。例如,此类文件夹在虚拟化解决方案(例如 ThinApp)中很常见,即将存储在本地用户 AppData 中的数据改为写入,例如:X:\My Virtualized App\%AppData%。

当然,我知道可以通过将 % 加倍来引导它,但无法说服解释器不在 for 循环中解析此类变量,例如:

FOR /F "tokens=*" %%F IN ('dir /b /s X:\myapp\%AppData% ') DO @(
echo %%F
)

在这里,无论我尝试什么,将百分比加倍、四倍或添加插入符号都没有任何区别。传递给 dir 命令的路径已解析 appdata,因此具有两个驱动器规范是无效的。

最佳答案

逃生的短期类(class)。

@ECHO OFF &SETLOCAL
FOR /F "delims=" %%F IN ('echo X:\myapp\%AppData%') DO (
echo %%F
)
FOR /F "delims=" %%F IN ('echo X:\myapp\^^%%AppData^^%%') DO (
echo %%F
)
FOR /F "delims=" %%F IN ('echo "X:\myapp\^^%%AppData^^%%"') DO (
echo %%F
)
FOR /F "delims=" %%F IN ('echo ^^"X:\myapp\^%%AppData^%%^"') DO (
echo %%F
)

输出:
X:\myapp\C:\Users\User\AppData\Roaming
X:\myapp\%AppData%
"X:\myapp\^^%AppData^^%"
"X:\myapp\%AppData%"

关于variables - 如何防止Windows批处理文件中的for循环中的变量解析(或转义百分号)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20274843/

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