批处理专家所需的文件由于第一个符号而无法循环

批处理专家所需的文件由于第一个符号而无法循环

我在链接中遇到了一点问题,有一个文本文件,你会注意到第一个字符是未知符号,并且在批处理尝试循环后,它只复制第一个字符并在那里停止。

有没有办法告诉批处理继续或在出现未知符号之前警告他?或者甚至删除它并继续处理文件的其余部分?

文本文件链接: https://easyupload.io/eknrri

脚本:

:: Turn echo off
@echo off

:: Enable extensions
SETLOCAL EnableExtensions 
SETLOCAL EnableDelayedExpansion

:: Set input file
set "InputFile=index.txt"

:: Set output file
set "OutputFile=output.txt"

:: Check if output file exits if it does delete it
If Exist "%OutputFile%" Del "%OutputFile%"

:: Loop through input file
for /F "tokens=* delims=" %%A in ('Type "%InputFile%"') do (
    :: Set line equal to file text
    set line=%%A

    echo !line!
)>>"%OutputFile%"

为什么这个powershell -command Get-Content -encoding UTF8 "%InputFile%" > test.txt不将文件设置为纯文本文件,而是手动另存为作品?

来自@JosefZ 的评论

该文件是二进制文件。hexdump.exe 显示前六个字节 07 00 21 00 00 00。不幸的是,类型需要纯文本文件…… – JosefZ

答案1

我在链接中遇到了一些问题,有一个文本文件

不幸的是,您链接的文件是不是文本文件:

$ file index.txt
index.txt: Targa image data - Color 65536 x 65536 x 0 ""

它是一个图像文件(真幻视觉TGA),根据文件中的头信息判断该文件是否被损坏或截断。

Truevision TGA,通常称为 TARGA,是由 Truevision Inc.(现为 Avid Technology 的一部分)创建的光栅图形文件格式。它是 TARGA 和 VISTA 板的原生格式,它们是 IBM 兼容 PC 中第一款支持高色/真彩色显示的显卡。


批处理尝试循环后,它仅复制第一个字符并在那里停止

For循环(与一起type)用于处理文本文件,而不是像图像这样的二进制文件。

相关内容