目录

  • .bat
    • 基本语法
    • 栗子
      • %0~%9:命令参数的引用
      • help:命令帮助
      • echo:打印输出信息
      • @ 命令 :不显示该行命令
      • Goto 命令:跳转
      • Call 命令:调用另一个批处理程序,并且不终止父批处理程序
      • start 命令:调用外部程序
      • If else 命令
      • 比较运算符:
      • choice /c:dme defrag,mem,end
      • for 命令
      • 其它命令:ping,telnet,color,exit,shutdown
      • 文件处理
      • 使用例子
      • 更多使用例子请参考:
  • python
  • C++

.bat

基本语法

注意事项:move copy等这种余目录相关命令,如果目录名字货文件名字中带有空格,应该加双引号,如:
MOVE /Y pcl_d.txt “C:\Program Files\PCL 1.11.1”
一、基础语法:
1.批处理文件是一个“.bat”结尾的文本文件,这个文件的每一行都是一条DOS命令。可以使用任何文本文件编辑工具创建和修改。
2.批处理是一种简单的程序,可以用 if 和 goto 来控制流程,也可以使用 for 循环。
3.批处理的编程能力远不如C语言等编程语言,也十分不规范。
4.每个编写好的批处理文件都相当于一个DOS的外部命令,把它所在的目录放到DOS搜索路径(path)中,即可在任意位置运行。
5.C:\AUTOEXEC.BAT 是每次系统启动时都会自动运行的,可以将每次启动时都要运行的命令放入该文件中。
6.大小写不敏感(命令符忽略大小写)
7.批处理的文件扩展名为 .bat 或 .cmd。
8.在命令提示下键入批处理文件的名称,或者双击该批处理文件,系统就会调用Cmd.exe来运行该文件。
详细介绍请参考文献:https://www.cnblogs.com/niuxiaohao/archive/2011/03/17/1986845.html

栗子

%0~%9:命令参数的引用

call (echo %1 ) “para1”

help:命令帮助

help type (显示跟“type /?”一样)

echo:打印输出信息

echo on
echo off
echo “hello word”

@ 命令 :不显示该行命令

不显示@后面的命令
@echo hello

Goto 命令:跳转

跳转到标签行执行,标签标志位:开头
@echo off
:begin
copy a:. d:\back
echo Please put a new disk into driver A
pause
goto begin

Call 命令:调用另一个批处理程序,并且不终止父批处理程序

调用另一个批处理程序,并且不终止父批处理程序
call test.bat “para1”

start 命令:调用外部程序

调用外部程序,所有的 DOS命令 和 命令行程序 都可以由 start命令 来调用。
start /MIN test2.bat arg1 arg2 (调用同目录下的 test2.bat,且输入2个参数给他,且本窗口最小化)
start e:“program files”\极品列车时刻表\jpskb.exe (文件路径名有空格时)

If else 命令

if “%1” == “a” format a:

if {%1} == {} goto noparms

if exist config.sys edit config.sys (表示如果存在这文件,则编辑它,用很难看的系统编辑器)

if exist config.sys type config.sys (表示如果存在这文件,则显示它的内容)

@echo off
XCOPY F:\test.bat D:
IF ERRORLEVEL 1 (ECHO 文件拷贝失败
) Else IF ERRORLEVEL 0 ECHO 成功拷贝文件
pause

if 1 == 0 ( echo comment1 ) else if 1==0 ( echo comment2 ) else (echo comment3 )

if 1 == 0 ( echo comment1 ) else if 1==0 ( echo comment2 ) ^
else (echo comment3 )

比较运算符:

 EQU - 等于   (一般使用“==”)NEQ - 不等于 (没有 “!=”,改用“ if not 1==1 ”的写法)LSS - 小于LEQ - 小于或等于GTR - 大于GEQ - 大于或等于

choice /c:dme defrag,mem,end

for 命令

  1. 如下命令行会显示当前目录下所有以bat或者txt为扩展名的文件名。for %%c in (*.bat *.txt) do (echo %%c)a. 如下命令行会显示当前目录下所有包含有 e 或者 i 的目录名。for /D %%a in (*e* *i*) do echo %%ab. 如下命令行会显示 E盘test目录 下所有以bat或者txt为扩展名的文件名。for /R E:\test %%b in (*.txt *.bat) do echo %%bfor /r %%c in (*) do (echo %%c)  :: 遍历当前目录下所有文件c. 如下命令行将产生序列 1 2 3 4 5for /L %%c in (1,1,5) do echo %%cd. 以下两句,显示当前的年月日和时间For /f "tokens=1-3 delims=-/. " %%j In ('Date /T') do echo %%j年%%k月%%l日For /f "tokens=1,2 delims=: " %%j In ('TIME /T') do echo %%j时%%k分e. 把记事本中的内容每一行前面去掉8个字符setlocal enabledelayedexpansionfor /f %%i in (zhidian.txt) do (set atmp=%%iset atmp=!atmp:~8!if {!atmp!}=={} ( echo.) else echo !atmp!):: 读取记事本里的内容(使用 delims 是为了把一行显示全,否则会以空格为分隔符)for /f "delims=" %%a in (zhidian.txt) do echo.%%a
  1. continue 和 break
    利用 goto 实现程序中常用的 continue 和 break 命令, 其实非常简单
    continue: 在 for 循环的最后一行写上一个标签,跳转到这位置即可
    break: 在 for 循环的外面的下一句写上一个标签,跳转到这位置即可
    Sample: (伪代码)
    for /F [“options”] %variable IN (command) DO (
    … do command …
    if … goto continue
    if … goto break
    … do command …
    :continue
    )
    :break

其它命令:ping,telnet,color,exit,shutdown

  1. ping 命令
    测试网络联接状况以及信息包发送和接收状况。但是不能够测试端口。
    语法:ping IP地址或主机名 [-t] [-a] [-n count] [-l size]
    参数含义:
    -t 不停地向目标主机发送数据;
    -a 以IP地址格式来显示目标主机的网络地址;
    -n count 指定要Ping多少次,具体次数由count来指定;
    -l size 指定发送到目标主机的数据包的大小。
    Sample: ping 192.168.0.1 -t (不停的测试192.168.0.1,按ctrl+c停止)
    Sample: for /L %%a in (0,1,255) do ping 192.168.0.%%a -n 1 >> tmp.txt (ping一下所有的局域网电脑)

  2. telnet 命令
    测试端口使用 telnet IP地址或主机名 端口,使用tcp协议的
    Sample: telnet 192.168.0.1 80 (测试192.168.0.1的80端口)

3.color 命令
设置背景及字体颜色
语法: color bf
b 是指定背景色的十六进制数字; f 指定前景颜色(即字体颜色)。
颜色值: 0:黑色 1:蓝色 2:绿色 3:湖蓝 4:红色 5:紫色 6:黄色 7:白色
8:灰色 9:淡蓝 A:淡绿 B:浅绿 C:淡红 D:淡紫 E:淡黄 F:亮白
如果没有给定任何参数,该命令会将颜色还原到 CMD.EXE 启动时的颜色。
如果两参数一样,视为无效输入。只有一个参数时,设置字体。

  1. random 命令
    产生随机数(正整数0~)

  2. exit 命令
    结束程序。即时是被调用的程序,结束后也不会返回原程序

  3. shutdown命令
    shutdown -s 关机

文件处理

1.删除
1) 删除一个文件或多个文件
del /s /q /f d:\test\a.bat
将直接删除d:\test\a.bat,没有任务提示
del temp* /q /f /s
将直接删除 本目录的 temp 目录的所有文件,没有任务提示
删除文件的时候可以使用“*”作通配符
2) 删除一个空目录
rd /q /s d:\test\log
将直接删除d:\test\log目录,如果log目录里面有文件将无法删除
3) 删除一个非空目录 (必须指定目录名称)
rmdir /q /s d:\test\logs
必须指定目录名称,不能使用通配符
/S 除目录本身外,还将删除指定目录下的所有子目录
/Q 安静模式,带 /S 删除目录树时不要求确认
无论里面是否有文件或文件夹将全部直接删除
2.创建目录
MKDIR [drive:]path
MD [drive:]path
路径有空格时,可以用双引号括起来,也可以用   替代

使用例子

  1. copy C:\test*.* D:\back (复制C盘test文件夹的所有文件(不包括文件夹及子文件夹里的东西)到D盘的back文件夹)
  2. dir c:*.* > a.txt (将c盘文件列表写入 a.txt 中)
  3. 符号 > 生成文件并写入内容(如果有这文件则覆盖), >> 文件里追加内容
  4. md d:\aa (创建文件夹)
  5. 等待用户输入: set /p 变量名=屏幕显示信息。 Sample:set /p pass=请输入密码:
  6. 让用户按回车退出
    小技巧(替代pause),文件的最后一句:set /p tmp=操作结束,请按回车键退出
  7. 清屏: cls
  8. 查看自己的IP:
    for /f “tokens=15” %%i in (‘ipconfig ^| find /i “ip address”’) do set ip=%%i
    echo %ip% (这时的 %ip% 就是自己的IP地址)
  9. 修改文件的更新日期
    copy 文件名+,>nul (修改为当前时间,如果要修改为指定时间,先修改系统时间,再改回系统时间)
  10. ren C:\test*.jpg .JPG
    for /r %%c in (
    .jpg) do (ren %%c *.JPG) :: 修改当前目录下的所有文件的后缀名,包括子目录的
  11. 修改文件的文件名
    rename test.jpg test2.JPG
    rename *.jpg *.888.JPG
  12. start iexplore.exe http://www.baidu.com
  13. 显示txt中的每一行
    for /f “delims=” %%a in (pcl_r.txt) do echo.%%a

更多使用例子请参考:

https://www.cnblogs.com/niuxiaohao/archive/2011/03/17/1986845.html

python

C++

.bat、python与C++程序进行批量处理的学习与实践相关推荐

  1. 使用python搭配pandoc实现html批量转word

    使用python搭配pandoc实现html批量转word 好兄弟工作上有一批(5000+)html的文档需要转成word格式,他采用了两种实现方式,但都有些问题: 直接改后缀有些会乱码 --> ...

  2. python程序-30分钟学会用Python编写简单程序

    原标题:30分钟学会用Python编写简单程序 参与文末每日话题讨论,赠送异步新书 异步图书君 学习目标 知道有序的软件开发过程的步骤. 了解遵循输入.处理.输出(IPO)模式的程序,并能够以简单的方 ...

  3. 用python脚本实现JRA-55数据批量下载

    今天开完组会,小小放松一下哈哈,更新一下许久没更新的CSDN(登陆太少,好多私信和评论都没回复,尴尬哈哈) 我之前下载JRA-55的monthly数据,上ftp用手点!用手点!!![破音] 太惨了,简 ...

  4. python写软件实例-30分钟学会用Python编写简单程序

    原标题:30分钟学会用Python编写简单程序 参与文末每日话题讨论,赠送异步新书 异步图书君 学习目标 知道有序的软件开发过程的步骤. 了解遵循输入.处理.输出(IPO)模式的程序,并能够以简单的方 ...

  5. python抠图精确到发丝_别再用PS了,我用五行Python代码就实现了批量抠图

    对于会PhotoShop的人来说,抠图是非常简单的操作了,有时候几秒钟就能扣好一张图.不过对于一些比较复杂的图,有时候还是需要花点时间的,今天就给大家带了一个非常快速简单的办法,用Python来批量抠 ...

  6. python改文件名_python实现批量修改文件名代码

    我曾以为,写脚本是很难的,直到我遇到了Python 前言随着国内版权意识的跟进,很多影视音乐资源开始收费,而且度盘又经常随意封杀各种资源,所以,为了保护资源,老司机们越来越倾向于把资源下载到本地,但随 ...

  7. Python初学尝试:word批量刷格式转PDF,替换页眉页脚

    Python初学尝试:word批量刷格式转PDF,替换页眉页脚 初学尝试 round 1 ronund 2 easygui round 4 PyQt5 round 4 wxpython 小结 初学尝试 ...

  8. Python 免费代理ip的批量获取

    Python 免费代理ip的批量获取 简介 网络爬虫的世界,向来都是一场精彩的攻防战.现在许多网站的反爬虫机制在不断的完善,其中最令人头疼的,莫过于直接封锁你的ip.但是道高一尺魔高一丈,在爬取网页的 ...

  9. python抠图_别再用PS了,我用五行Python代码就实现了批量抠图

    对于会PhotoShop的人来说,抠图是非常简单的操作了,有时候几秒钟就能扣好一张图.不过对于一些比较复杂的图,有时候还是需要花点时间的,今天就给大家带了一个非常快速简单的办法,用Python来批量抠 ...

  10. python网络爬虫程序技术,Python网络爬虫程序技术

    spContent=该课程是2018年广东省精品在线开放课程.课程主要以爬取学生信息.爬取城市天气预报.爬取网站图像.爬起图书网站图书.爬取商城网站商品等5个项目为依托,讲解Web.正则表达式.Bea ...

最新文章

  1. 允许用户在web Interface上修改密码
  2. 首次看清体内所有癌症转移灶,深度学习方法立大功!中国留学生一作论文登《细胞》封面...
  3. 解决忘记oracle管理员密码(转)
  4. 神策数据斩获大数据星河奖,首发用户行为分析标准
  5. final类是否可以被代理_设计模式——代理模式
  6. android studio lambda插件,在Android Studio中使用Lambda表达式(retrolambda)
  7. ubuntu如何杀死进程
  8. tdd java_Java TDD简介–第1部分
  9. 内存映射获取行数_使用内存映射文件获取巨大的矩阵
  10. 继承/作⽤域/作⽤域链
  11. visual studio 中将选中代码相同的代码的颜色设置,修改高亮颜色
  12. sqlserver 汉字转拼音(转载)
  13. 解决Mac无法睡眠问题
  14. 大数据可视化设计师丹尼斯_自助数据可视化设计师如何谋生
  15. 第二本书:疯狂人类进化史20190620
  16. 卸载ubuntu系统,恢复win10单系统【win10+Ubuntu20.04双系统】
  17. 华为云排名第八,2019年云综合收入85亿元
  18. 【C语言】详解qsort函数使用和模拟实现
  19. Typora快捷键全
  20. linux运行lnk,LNK 文件扩展名: 它是什么以及如何打开它?

热门文章

  1. python数据分析教程百度云资源-【python数据分析+pdf】百度云下载 - 云盘精灵
  2. 基于C++的深度学习模型部署
  3. 端口输出报错**Error** test5.ASM(60) Constant too large
  4. ORA-01790 expression must have same datatype as corresponding expression 问题解决
  5. java:comp/env 解释
  6. Maven的学习与2022IDEA创建Maven的web项目的教程(这个比上一期更“啰嗦哦~,前面不想删了,整体再来一遍”)
  7. 清远市高中计算机考试时间,2017年清远市中考体育考试安排
  8. 求原谅---好久没更新了
  9. 读书笔记-情感化设计
  10. flutter中的点击事件