file - 如何从文件中读取xxx字节,输出到变量

标签 file variables batch-file split sequential

我正在尝试将文件拆分为 8159 字节长的连续页面。我如何读取 8159 字节的文件并保存到 all!count!瓦尔?如果文件为 8159 或更小,则读取该文件并将其设置为 !all!多变的。如何在 :split 标签中只读取这么多字节并保存到变量。

@echo off
setlocal EnableDelayedExpansion EnableExtensions
for /f "tokens=*" %%a in ("newhtml.html") do set FileSize=%%~za
echo FileSize is %FileSize% bytes
if %FileSize% GTR 8159 goto split

SETLOCAL DisableDelayedExpansion 
set "all="
FOR /F "usebackq delims=" %%a in (`"findstr /n ^^ newhtml.html"`) do (
    set "line=%%a"
    SETLOCAL EnableDelayedExpansion
    set "line=!line:#=#S!"
    set "line=!line:*:=!"
    for /F "delims=" %%p in ("!all!#L!line!") do (
        ENDLOCAL
        set "all=%%p"
    )
)
SETLOCAL EnableDelayedExpansion
if defined all (
set "all=!all:~2!"
set ^"all=!all:#L=^
[blank line, remove this comment]
[blank line, remove this comment]   
!"
set "all=!all:#S=#!"
)
echo the all variable is: !all!
goto end

:split
set count=0
set /a all_sub=%FileSize% / 8159
set /a all_rem=%FileSize% %% 8159
if %all_rem% NEQ 0 set /a all_ttl=%all_sub% + 1
echo %all_sub% full page(s), %all_rem% bytes(s) leftover, %all_ttl% total pages

for  %%a in ("newhtml.html") do (
    set /a count=count + 1
    echo Read 8159 bytes from this file newhtml.html, save to all!count!
    if !count! EQU %all_ttl% echo All done & goto end
)

goto end

:end

需要帮助的部分是分割标签,以及在读取文件的for循环中,如何一次只获取8159字节的数据并写入顺序变量。我想我应该做所有!一个函数然后调用它?

编辑:我找到这个文件(http://www.fourmilab.ch/splits/)来进行分割,只需很短的工作即可将其添加到所有例程中进行重新组装。非常感谢 dbenham 和 jeb!

最佳答案

为什么不简单地将文件读入数组
如果没有任何行超过 ~8190 个字符,则每一行都是一个有效的条目。
那么你就不需要换行等替换技巧了。

但这取决于您的实际问题。

@echo off
SETLOCAL DisableDelayedExpansion
set "all="
set count=0
FOR /F "usebackq delims=" %%a in (`"findstr /n ^^ aux1.txt"`) do (
    set "line=%%a"
    set /a count+=1
    SETLOCAL EnableDelayedExpansion
    set "line=!line:*:=!"
    for /F "delims=" %%p in (^"set "array[!count!]=!line!"^") do (
        ENDLOCAL
        %%p
    )
)

SETLOCAL EnableDelayedExpansion
for /L %%n in (1 1 %count%) do (
  echo Line%%n:!array[%%n]!
)

关于file - 如何从文件中读取xxx字节,输出到变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10638836/

相关文章:

java - 如何通过 Java 接口(interface) promise 数据结构?

batch-file - 如何并行运行多个DOS命令?

java - Apache httpclient 从本地文件系统获取文件?

ios - 使用数组变量 SWIFT 检查文本框

arrays - xcode、ios8、swift、文件和数组

javascript - 每次调用模块时的非全局变量

java - Java 的批处理文件

windows - 如何在windows中获取文件名?

c - 当害怕构造时,c 中的错误输出

android - 如何在 Android 中选择一个文件并计算其哈希值 (SHA-256)