gpt4 book ai didi

html - 批处理 : Fill array by text file with escaped characters

转载 作者:行者123 更新时间:2023-11-28 02:37:52 25 4
gpt4 key购买 nike

我有两个数组要从一个文本文件中填充。一个带有 UTF-8 变音符号,一个带有转义符号。

all_headings_html_umlauts_escaped.txt
^&Uuml^;berblick
^&Auml^;pfel
^&Ouml^;sterreich

all_headings_utf8_umlauts.txt
Überblick
Äpfel
Österreich

我的批处理文件:

@echo off
:: Build array to iterate through
set /A n=0
for /F "usebackq delims=" %%a in ("all_headings_utf8_umlauts.txt") do (
set /A n+=1
REM call echo %%n%%
call set arrayutfeight[%%n%%]=%%a
call set o=%%n%%
)


for /L %%i in (1,1,%o%) do call echo %%arrayutfeight[%%i]%%
pause

:: Build arrayy to iterate through
set /A p=0
for /F "usebackq delims=" %%b in ("all_headings_html_umlauts_escaped.txt") do (
set /A p+=1
REM call echo %%k%%
call set arrayhtmlescaped[%%p%%]=%%b
call set q=%%p%%
)


for /L %%i in (1,1,%q%) do call echo %%arrayhtmlescaped[%%i]%%
pause

第一个阵列的输出完美无缺,应该是这样,但第二个阵列的输出是“ECHO 已关闭”的三倍。任何想法为什么以及如何解决这个问题?我真的需要数组 ^Ü^;berblick...

韩国标记

最佳答案

^ 插入字符的管理在批处理文件中很复杂。在某些情况下,当这样的字符出现在一行中时,它会被复制。通过这种方式,call set "arrayhtmlescaped[%%p%%]=%%b" 行在文件中为每个符号存储 两个 插入符,因此额外的插入符必须被删除。最简单的方法是使用延迟扩展,但在 echo 命令中,插入符被放置在引号外,因此有必要转义每个插入符 还有一个。

@echo off
setlocal EnableDelayedExpansion

:: Build arrayy to iterate through
set /A p=0
for /F "usebackq delims=" %%b in ("all_headings_html_umlauts_escaped.txt") do (
set /A p+=1
REM call echo %%k%%
call set "arrayhtmlescaped[%%p%%]=%%b"
call set q=%%p%%
)

for /L %%i in (1,1,%q%) do echo !arrayhtmlescaped[%%i]:^^^^=^^!
pause

关于html - 批处理 : Fill array by text file with escaped characters,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45994961/

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