gpt4 book ai didi

windows - 如何显示从扩展了 FOR/F 的外部 txt 文件中读取的系统变量?

转载 作者:可可西里 更新时间:2023-11-01 10:32:32 25 4
gpt4 key购买 nike

我正在通过 Windows 命令提示符查询一个 txt 文件,但显示的输出是 txt 文件的实际内容,而不是系统变量。

知道我该如何修改吗?

FOR /F "tokens=1,2 delims=," %%G IN (Backup_Folder.txt) DO (
echo %%H
)

输出是

%USERPROFILE%\Documents\Electronic Arts

代替

C:\Users\UserName\Documents\Electronic Arts

Backup_Folder.txt 的内容是:

EA,%USERPROFILE%\Documents\Electronic Arts

最佳答案

我建议在批处理文件中使用:

for /F "tokens=1* delims=," %%G IN (Backup_Folder.txt) do call echo %%H

最好用tokens=1*而不是 tokens=1,2如果存储在文本文件中的文件夹路径也可能包含一个逗号,例如:

EA,%USERPROFILE%\Documents,Settings\Electronic Arts

1 之后的星号表示第一个逗号分隔字符串之后的逗号之后的其余行,而不进一步拆分逗号上的行。所以用 tokens=1*循环变量 G被分配 EA和循环变量 H被分配 %USERPROFILE%\Documents,Settings\Electronic Arts . tokens=1,2的用法结果 H仅分配 %USERPROFILE%\Documents,对于那个例子。

在替换%%H 之后,在这种特定情况下命令CALL 是必要的,以便继续执行循环体。通过 %USERPROFILE%\Documents\Electronic Arts在第一个解析步骤中,Windows 命令解释器第二次解析命令行以额外扩展 %USERPROFILE% .

当将从文本文件中读取的文件夹路径分配给环境变量时,我建议使用 as 命令 set "FolderPath=%%~H"call set "FolderPath=%%~H"用于在将文件夹路径分配给环境变量之前获取已展开的文件夹路径中的所有环境变量引用。

%% 之间的波浪字符和 H文件夹路径上的结果,如 "%USERPROFILE%\Documents & Settings\Electronic Arts"存储在文本文件中,周围的双引号被删除,因此可以在命令行中使用环境变量,例如:

if exist "%FolderPath%\Game\game.exe" echo Game exists.

空格以及&()[]{}^=;!'+,`~在不带或带路径的文件/文件夹名称中,需要使用双引号作为 Windows 命令解释器在命令提示符窗口中运行的最后帮助页面上的输出 cmd /? .在不是文件/文件夹名称/路径的参数字符串中,额外可能的字符 |<>还要求将整个参数字符串括在直双引号中,以使这些重定向运算符被解释为文字字符。

要了解使用的命令及其工作原理,请打开命令提示符窗口,在其中执行以下命令,并仔细阅读为每个命令显示的所有帮助页面。

  • call /?
  • echo /?
  • for /?
  • set /?

关于windows - 如何显示从扩展了 FOR/F 的外部 txt 文件中读取的系统变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47401349/

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