前言

由于日常科研工作中使用C/C++比较多,在进行大规模运行时涉及到的批量处理操作较多,遂将目前遇到的情况记录如下,以便查看:

1.for循环

最基本的for循环操作为在一些数中遍历,如下例子。setlocal enabledelayedexpansion 为设置延时,检测for循环变量的动态变化,使用/L循环必备。(5,5,25)表示从5开始到25结束(左右两边都包含),步长为5。

@echo off
setlocal enabledelayedexpansion set /a v=0
for /L %%a in (5,5,25) do (
set /a v+=1 echo %%a
echo !v! ) pause

2.读取和写入txt文件

2.1写入

使用bat将数据写入txt文件中,>表示直接覆盖,>>表示追加。这里采用了中间变量temp

@echo off
setlocal enabledelayedexpansion for /L %%i in (5,5,25) do (
echo %%i>%%i.txt
set /a temp=%%i+5

echo !temp!>>%%i.txt
)

2.2读取后写入

还可以读取一个txt文件中的值并写入另一txt文件显示,另外还可以设置变量显示

如已知25.txt:

执行如下程序:

@echo off
setlocal enabledelayedexpansion set targe='' for /f %%i in (C:\Users\Administrator\Desktop\test\25.txt) do (
set target=%%i
echo !target! > test1.txt
echo !target! >> test2.txt
) pause

结果如下:

2.3读取txt文件中某一行

读取txt中的某一行中的值,并赋给另一个变量:

@echo off
setlocal enabledelayedexpansion set /a n=0
for /f "delims=" %%i in (25.txt) do (
set /a n+=1
if !n!==2 echo %%i
if !n!==5 echo %%i
) pause

结果如下:

3.bat之间传参

3.1传参方法1

将TEST1.bat中的值传到TEST2.bat中,并显示出来:

TEST1.bat:

@echo off
set a=1
set b=2
set c=3 call TEST2.bat %a%,%b%,%c%

TEST2.bat:

echo parameter a  is %1
echo parameter b is %2
echo parameter c is %3 pause

运行TEST1.bat的结果:

3.2传参方法2

还有另一种方法传参,将参数值放在bat后面进行传递,将TEST1.bat中的值传到TEST2.bat中:

TEST1.bat:

@echo off

TEST2 10 20 30

TEST2.bat:

echo parameter a  is %1
echo parameter b is %2
echo parameter c is %3 pause

执行TEST1.bat后的结果:

4.bat移动txt文件

将当前文件夹下的test.txt移动到任意文件夹下:

move 25.txt C:\Users\Administrator\Desktop\test\25.txt

5.bat中表示大于、小于等

在bat中,有如下定义:

EQU - 等于
NEQ - 不等于
LSS - 小于
LEQ - 小于或等于
GTR - 大于
GEQ - 大于或等于

直接上代码:

@echo off

set /a a=1,b=2
if %a% equ %b% (echo yes) else (echo no)
if %a% neq %b% (echo yes) else (echo no)
if %a% lss %b% (echo yes) else (echo no)
if %a% leq %b% (echo yes) else (echo no)
if %a% gtr %b% (echo yes) else (echo no)
if %a% geq %b% (echo yes) else (echo no) pause

结果如下:

6.bat中并行运行

将参数从TEST1.bat同时传递到TEST2.bat,并且同步运行

TEST1.bat:

echo "Are you ready to continue...(Y/N)"
set /p isReady=
if "%isReady%" == "Y" (
echo "Ready to continue."
) else (
exit
) start for %%i in (2, 7, 12, 17) do start TEST2 %%i 28

TEST2.bat

@echo off
echo parameter a is %1
echo parameter b is %2 pause

运行TEST1.bat后生成的结果有5个窗口文件:

7.bat中加减乘除取余等操作

bat中运算方法与C++中类似,代码为:

set /a z=10*5  rem 乘法
echo %z% set /a z=10/5 rem 除法
echo %z% set /a z=10+5 rem 加法
echo %z% set /a z=10-5 rem 减法
echo %z% set /a z=10/3 rem 除法(余数不为0)
echo %z% set /a z=10%%3 rem 取余
echo %z% pause

运行bat后生成的结果如下:

参考链接

  1. for语句循环结构:https://www.cnblogs.com/yang-hao/p/6002869.html
  2. 读取txt并打印:https://blog.csdn.net/sdewendong/article/details/93736366?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase
  3. 传递参数:https://jingyan.baidu.com/article/60ccbcebb8a4e464cbb19750.html
  4. 读取txt中某一行的内容:https://blog.csdn.net/LHshooter/article/details/107280030?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.channel_param
  5. 循环变量问题(开启延时使用!K!读取变量,不开启延时使用%K%读取变量):https://blog.csdn.net/hongweigg/article/details/107353164

bat使用方法汇总的更多相关文章

  1. 你真的会玩SQL吗?实用函数方法汇总

    你真的会玩SQL吗?系列目录 你真的会玩SQL吗?之逻辑查询处理阶段 你真的会玩SQL吗?和平大使 内连接.外连接 你真的会玩SQL吗?三范式.数据完整性 你真的会玩SQL吗?查询指定节点及其所有父节 ...

  2. Java实现时间动态显示方法汇总

    这篇文章主要介绍了Java实现时间动态显示方法汇总,很实用的功能,需要的朋友可以参考下 本文所述实例可以实现Java在界面上动态的显示时间.具体实现方法汇总如下: 1.方法一 用TimerTask: ...

  3. C#读写文件的方法汇总_C#教程_脚本之家

    C#读写文件的方法汇总_C#教程_脚本之家 http://www.jb51.net/article/34936.htm

  4. UITextView实现placeHolder方法汇总

    UITextField中有一个placeholder属性,可以设置UITextField的占位文字,起到提示用户的作用.可是UITextView就没那么幸运了,apple没有给UITextView提供 ...

  5. 将编码从GB2312转成UTF-8的方法汇总(从前台、程序、数据库)

    这篇文章主要介绍了将编码从GB2312转成UTF-8的方法汇总(从前台.程序.数据库),需要的朋友可以参考下 一个网站如果需要国际化,就需要将编码从GB2312转成UTF-8,其中有很多的问题需要注意 ...

  6. 本地获取System权限CMD方法汇总(转)

    本地获取System权限CMD方法汇总(转) 稍微整理了下,大概有三种方法可以本地获取system权限的cmd,但前提都是当前用户具备administrator权限. 下面列举的三种方法各有千秋,看你 ...

  7. Javascript对象属性与方法汇总

    Javascript对象属性与方法汇总 发布时间:2015-03-06 编辑:www.jquerycn.cn 详细介绍下,javascript对象属性与对象方法的相关知识,包括javascript字符 ...

  8. .net(C#)操作文件的几种方法汇总

    .net(C#)操作文件的几种方法汇总 System.IO命名空间下类的用法:在System.IO名称空间中包含了用于文件输入输出的主要类.File:实用类,提供许多静态方法,用于移动.复制和删除文件 ...

  9. jquery常用函数与方法汇总

    1.delay(duration,[queueName]) 设置一个延时来推迟执行队列中之后的项目. jQuery1.4新增.用于将队列中的函数延时执行.他既可以推迟动画队列的执行,也可以用于自定义队 ...

随机推荐

  1. 分布式锁的实现之 redis 篇

    为什么需要分布式锁 引入经典的秒杀情景,100件商品供客户抢.如果是单机版的话,我们使用synchronized 或者 lock 都可以实现线程安全.但是如果多个服务器的话,synchronized ...

  2. Java IO流知识总结

    Java IO的原理 I/O是Input和Output的缩写,用来处理设备之间的数据传输.如读/写文件,网络通讯等. Java程序中,对于数据的输入/输出操作以"流(stream)" ...

  3. 2- 计算机的组成以及VMware使用

    计算机的组成: 硬件: 处理器(CPU):I3 I5 I7 运行内存RAM(存储数据) 容量(字节为单位) 主板(总线设备) 输入输出设备(显示屏,键盘,鼠标,触目屏) 外部存储设备(硬盘,U盘,TF ...

  4. php和mysql数据库防SQL注入的有效解决办法

    <?php$mysqli = new mysqli("localhost", "my_user", "my_password", &q ...

  5. hdu3006 状态压缩+位运算+hash(小想法题)

    题意:        给了n个集合,问你这n个集合可以组合出多少种集合,可以自己,也可以两个,也可以三个....也可以n个集合组在一起. 思路:       是个小想法题目,要用到二进制压缩,位运算, ...

  6. MD5算法C/C++的实现

    博客链接:http://blog.csdn.net/qq1084283172/article/details/52334027 在逆向程序的时候,经常会碰到加密的算法的问题,前面分析UC的逆向工程师的 ...

  7. The 2014 ACM-ICPC Asia Mudanjiang Regional First Round C

    题意:       这个是The 2014 ACM-ICPC Asia Mudanjiang Regional First Round 的C题,这个题目当时自己想的很复杂,想的是优先队列广搜,然后再在 ...

  8. Redis笔记整理

    Redis 遵守BSD协议.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库.数据结构服务器. 特点:     1.Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时 ...

  9. 神经网络与机器学习 笔记—Rosenblatt感知器收敛算法C++实现

    Rosenblatt感知器收敛算法C++实现 算法概述 自己用C++实现了下,测试的例子和模式用的都是双月分类模型,关于双月分类相关看之前的那个笔记: https://blog.csdn.net/u0 ...

  10. 【.NET 与树莓派】六轴飞控传感器(MPU 6050)

    所谓"飞控",其实是重力加速度计和陀螺仪的组合,因为多用于控制飞行器的平衡(无人机.遥控飞机).有同学会问,这货为什么会有六轴呢?咱们常见的不是X.Y.Z三轴吗?重力加速度有三轴, ...