Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String Windows按长度64批量拆分长字符串_String_Batch File_Split - Fatal编程技术网

String Windows按长度64批量拆分长字符串

String Windows按长度64批量拆分长字符串,string,batch-file,split,String,Batch File,Split,我一直在努力想办法解决这个问题,但运气不好。有人能帮忙吗 我有一个文件:input.txt 这个文件包含一个长字符串——我想将长字符串分割成64个长字符串块,并将内容保存到另一个文件中 到目前为止,我没有多少,我知道我必须使用for循环: echo off set /p base64=<input.txt for /f "%base64:~0,64%" %%G IN %base64% DO echo %%G echo关闭 设置/p基线64= 这应该可以满足您的要求,但这可能取决于文件的

我一直在努力想办法解决这个问题,但运气不好。有人能帮忙吗

我有一个文件:input.txt 这个文件包含一个长字符串——我想将长字符串分割成64个长字符串块,并将内容保存到另一个文件中

到目前为止,我没有多少,我知道我必须使用for循环:

echo off
set /p base64=<input.txt

for /f "%base64:~0,64%" %%G IN %base64% DO echo %%G
echo关闭
设置/p基线64=

这应该可以满足您的要求,但这可能取决于文件的内容,因为批处理对某些字符很敏感。

顺便说一句。。当文件中的字符串与您的脚本太长时,我遇到一个错误…您知道为什么会这样吗?文本文件中字符串的长度有限制吗?我有一个应用程序的文件。11388个字符长。但它与您的脚本不兼容。但是如果我把字符串减少到8183个字符,脚本就可以运行了。奇怪…你知道为什么吗?许多系统和实用程序都有限制。CMD.EXE不允许字符串长度超过8183个字符。我相信FINDSTR被限制在~4K。例如,文件名长度也有限制。8183看起来确实是一个非常奇怪的数字——尽管它是正确的(对于像
var
这样的3字符变量名),但对于1个1字符的名称,它是8185。对于终端
null
=8188,变量名为8185+1,对于“=”+1,则为8185+1。所以可能还涉及到一个4字节的指针,总共是一个更“二进制”的8192。好的,谢谢,所以我必须使用不同的工具来分割文件,而不是使用纯批处理解决方案。。
@ECHO OFF
SETLOCAL
(
FOR /f "delims=" %%i IN (input.txt) DO SET longline=%%i&call:breakit
)>output.txt
GOTO :eof

:breakit
ECHO %longline:~0,64%
SET longline=%longline:~64%
IF DEFINED longline GOTO breakit
GOTO :EOF