首页 > 解决方案 > 由于第一个符号,无法循环批处理专家所需的文件

问题描述

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

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

文本文件链接: 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不将文件设置为纯文本文件,而是手动保存为作品?

标签: windowsbatch-file

解决方案


我在链接中有一点问题有一个文本文件

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

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

根据文件中的头信息,它是一个图像文件(Truevision TGA )。它也被损坏或截断。

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


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

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


推荐阅读