首页 > 其他分享 >批处理

批处理

时间:2025-01-02 11:45:21浏览次数:1  
标签:文件 txt 批处理 echo %% set 文本

批处理

实验要求

有两个文本如下,实际中并不知道两文本各有多少行:

文本1.txt  
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 
ccccccccccccccccccccccccccccccccccccccc 
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee 
ggggggggggggggggggggggggggggggggggggggg 
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww 
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz 

文本2.txt 
hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh 
iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii 
jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj 
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn 

要求用Windows下批处理和Linux下的shell脚本完成,两文本交替输出:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 
hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh 
ccccccccccccccccccccccccccccccccccccccc 
iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii 
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee 
jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj 
ggggggggggggggggggggggggggggggggggggggg 
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn 
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww 
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz 

要求:
1 尽量不生成临时文件
2 代码要高效,代码尽量简洁
3 给出各种情况的测试结果截图(正常文件,巨大文件,一个空文件,两个空文件)

Windows

@echo off
 
set "paths=1.txt"
for %%a in ("%paths%") do (
 if "%%~za" equ "0" (
   echo "1.txt empty"
   
    ) else (
    echo "1.txt not empty"
 )
)
 
set "paths=2.txt"
for %%a in ("%paths%") do (
 if "%%~za" equ "0" (
   echo "2.txt empty"
   pause
    ) else (
    echo "2.txt not empty"
 )
)
 
 
for /f "delims=" %%i in (1.txt) do set /a n+=1&call,set "_%%n%%=%%i"
for /f "delims=" %%i in (2.txt) do set /a m+=1&call,set ".%%m%%=%%i"
if %n% gtr %m% (set "num=%n%") else (set "num=%m%")
for /l %%i in (1,1,%num%) do (
if defined _%%i call,echo %%_%%i%%
if defined .%%i call,echo %%.%%i%%
)
 
pause>nul

正常文件,正确输出
截图
巨大文件,终端卡死
截图
空文件,识别为空
截图

Linux

#!/bin/bash

file1="文本1.txt"
file2="文本2.txt"

# 使用 paste 命令交替输出
paste -d '\n' $file1 $file2

正常文件,正确输出
截图
巨大文件,持续输出直到完成后停止
截图
空文件,无输出
截图

标签:文件,txt,批处理,echo,%%,set,文本
From: https://www.cnblogs.com/Arisf/p/18647309

相关文章

  • Unity批处理修改prefab内容并保存
    EditorUtility.DisplayProgressBar("ModifyPrefab","Pleasewait...",0);string[]ids=AssetDatabase.FindAssets("t:Prefab",newstring[]{"Assets/Resources/Prefabs"});for(inti=0;i<ids.Length;i++){......
  • 使用 `hash-wasm` 的 `createMD5`方法,生成md5值,批处理500张图片会报错, `RangeError: W
    处理大量文件时遇到RangeError:WebAssembly.instantiate():Outofmemory错误,通常是因为一次性创建了过多的WebAssembly实例,导致内存不足。每个createMD5()调用都会创建一个新的WebAssembly实例,这对于大量的并发操作来说是不可行的。为了优化代码并避免此问题,可以考虑......
  • 说说你对多道批处理系统的理解
    多道批处理系统是一种计算机操作系统,它允许多个用户同时使用计算机资源进行工作。这种系统通过提高计算机的利用率和缩短任务完成时间,从而提升整个系统的效率。以下是对多道批处理系统的深入理解,特别从前端开发的角度进行阐述:一、多道批处理系统的基本概念多道性:系统内可同时容......
  • 项目实操:windows批处理拉取git库和处理目录、文件
        这个脚本从多个git库拉取源码、切换分支并适当组织目录结构。包含了常用的bat命令。    unix/linux程序员的几个注意点:目录分隔符是反斜杠,不是斜杠,错了就不行不区分大小写,文件名、目录名、命令参数都是如此windows与unix/linux相同的命令名并不多目录......
  • windows命令行与批处理
    启动win+r,输入cmd或cmd.exe,然后按回车,默认进入当前用户路径下的cmd在文件路径栏里输入cmd,可以直接跳到当前路径下的cmd命令说明不区分大小写cmd中运行可执行文件(exetxtmd等),可以不加后缀通过向上键和向下键来浏览之前运行过的命令Tab键可以自动补全(支持文件......
  • 【Azure Batch Account】批处理服务是否可以固定出口访问IP地址呢?
    问题描述使用AzureBatchAccount服务(批处理),所访问的资源受防火墙保护。现在需要把BatchAccount服务池中的实例地址IP加入到防火墙白名单中,但是由于BatchAccount被没有指定的出口访问IP地址,所以需要把BatchAccount服务的全部IP地址加入到白名单中,但是,它的范围的确太多了!如......
  • 分布式批处理引擎Mapreduce
    一、MapReduce概述定义MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行计算。它是一种分布式计算框架,主要用于在集群环境下对海量数据进行批处理。这个框架将计算任务抽象为两个主要阶段:Map阶段和Reduce阶段。由Google公司在2004年提出,主要用于解决大规模数据处理的......
  • ORCA:基于持续批处理的LLM推理性能优化技术详解
    大语言模型(LLMs)推理过程中的批处理优化面临显著挑战,这主要源于其推理过程的迭代特性。核心问题在于批处理中的各个请求完成时间存在差异,这导致资源释放和新请求整合的复杂性显著提高,特别是在处理不同完成阶段的请求时。当批处理中序列的生成长度差异较大时,GPU资源利用率往往不够......
  • 【转】批处理里的判断
    此段回答来自:kimi.ai 在批处理(batch)脚本中,if语句用于条件判断,后面跟随的EQU和NEQ是比较运算符,用于比较两个字符串或数值是否相等或不相等。EQU表示"等于"(Equal)。它用于检查两个值是否相等。如果相等,那么if语句后面的命令将被执行。示例:if"%variable%"EQU"som......
  • 【娱乐项目】基于批处理脚本与JavaScript渲染视频列表的Web页面
    Demo介绍一个简单的视频播放器应用,其中包含了视频列表和一个视频播放区域。用户可以通过点击视频列表中的项来选择并播放相应的视频,播放器会自动播放每个视频并在播放完毕后切换到下一个视频。本项目旨在通过自动化脚本和动态网页渲染,帮助用户快速生成并展示本地视频资源(......