博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bat批处理运用
阅读量:5874 次
发布时间:2019-06-19

本文共 2703 字,大约阅读时间需要 9 分钟。

一、简单批处理内部命令简介

1.Echo 命令 –显示

  打开回显或关闭请求回显功能,或显示消息。如果没有任何参数,echo 命令将显示当前回显设置。

语法:

echo [{on│off}] [message]

Sample:@echo off / echo

Pause  //用pause才能使窗体停止

在实际应用中我们会把这条命令和重定向符号(也称为管道符号,一般用> >> ^)结合来实现输入一些命令到特定格式的文件中。

 

2.@ 命令 –隐藏命令本身

表示不显示@后面的命令,在入侵过程中(例如使用批处理来格式化敌人的硬盘)自然不能让对方看到你使用的命令啦。
Sample:@echo off
@echo Now initializing the program,please wait a minite...
@format X: /q/u/autoset (format 这个命令是不可以使用/y这个参数的,可喜的是微软留了个autoset这个参数给我们,效果和/y是一样的。)

 

3.Goto 命令

指定跳转到标签,找到标签后,程序将处理从下一行开始的命令。
语法:goto label (label是参数,指定所要转向的批处理程序中的行。)
Sample:
if {%1}=={} goto noparms
if {%2}=={} goto noparms(如果这里的if、%1、%2你不明白的话,先跳过去,后面会有详细的解释。)
@Rem check parameters if null show usage
:noparms
echo Usage: monitor.bat ServerIP PortNumber
goto end
标签的名字可以随便起,但是最好是有意义的字母啦,字母前加个:用来表示这个字母是标签,goto命令就是根据这个:来寻找下一步跳到到那里。最好有一些说明这样你别人看起来才会理解你的意图啊。

4.Rem 命令 –注释

注释命令,在C语言中相当与/*--------*/,它并不会被执行,只是起一个注释的作用,便于别人阅读和你 自己日后修改。
Rem Message
Sample:@Rem Here is the description.

5.Pause 命令

  运行 Pause 命令时,将显示下面的消息:

  Press any key to continue . . .

Sample:

@echo off

:begin

copy a:*.* d:\back

echo Please put a new disk into driver A

pause

goto begin

在这个例子中,驱动器 A 中磁盘上的所有文件均复制到d:\back中。显示的注释提示您将另一张磁盘放入驱动器 A 时,pause 命令会使程序挂起,以便您更换磁盘,然后按任意键继续处理。

6.Call 命令

从一个批处理程序调用另一个批处理程序,并且不终止父批处理程序。call 命令接受用作调用目标的标签 。如果在脚本或批处理文件外使用 Call,它将不会在命令行起作用。
语法:
call [[Drive:][Path] FileName [BatchParameters]] [:label [arguments]]
参数: [Drive:}[Path] FileName 指定要调用的批处理程序的位置和名称。filename 参数必须具有 .bat 或 .cmd 扩展名。
参考:

二、在Windows批处理文件中引用日期和时间的方法

1、 %DATE% 输出的是: yyyy/mm/dd  星期* (例如:2008/12/18 星期四) 

引用格式:%DATE:~x,y% 
x=起始坐标,y=从x开始截取字符个数

如: 

%DATE:~0,4% --> yyyy 
%DATE:~5,2% --> mm 
%DATE:~8,2% --> dd

如取出格式为 YYYYMMDD 的日期:%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%     -->20081218

2、 %TIME% 输出的是:hh24:mi:ss.ms (例如:10:49:12.17) 

引用格式:%TIME:~x,y% 
x=起始坐标,y=从x开始截取字符个数

如: 

%TIME:~0,2% --> hh 
%TIME:~3,2% --> mi 
%TIME:~6,2% --> ss

如取出格式为 HHMMSS 的时间:%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%     -->104912

输出格式化后的日期时间:%DATE:~4,4%%DATE:~9,2%%DATE:~12,2%%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%     -->20081218104912

参考:

三、bat脚本自动创建文件夹

示例:利用bat脚本进行wireshark抓包时 自动创建一系列文件

@Rem 文件以管理员权限运行@echo offset prefix=E:\pcaplog\set suffix=.pcapset xiegan=\:loop@Rem 需要切换到tshark.exe的目录下cd C:\Program Files (x86)\Wireshark\@Rem date:~0,4 从0位置开始的4个字符,2017/10/16 注意斜杠set h=%TIME:~0,2%If %h% leq 9 (Set h=0%h:~1,1%)set timestr=%date:~0,4%%date:~5,2%%date:~8,2%%h%%time:~3,2%%time:~6,2%set daystr=%date:~0,4%%date:~5,2%%date:~8,2%mkdir "%prefix%%daystr%    @若文件夹已存在,则不会创建 set dest=%prefix%%daystr%%xiegan%%timestr%%suffix%@Rem tshark或者tshark.exe。eth0是网卡的名字,需要将“本地连接”重命名为eth0 @Rem tshark -i eth0 -s 0 -c 3000 -w %dest%tshark -i eth0 -s 0 -c 5000 -w %dest%goto:looppause
View Code

 

转载于:https://www.cnblogs.com/peterYong/p/10959038.html

你可能感兴趣的文章
ABP理论学习之仓储
查看>>
centos7下使用yum安装mysql
查看>>
How can I set ccshared=-fPIC while executing ./configure?
查看>>
2.移植uboot-添加2440单板,并实现NOR、NAND启动
查看>>
hadoop-2.6.5安装
查看>>
vmware虚拟机里的LINUX不能上网的原因一:虚拟网卡设置
查看>>
监控摄像机的区别和分类
查看>>
Java学习——对象和类
查看>>
ElasticSearch 组合过滤器
查看>>
HttpClient连接池的连接保持、超时和失效机制
查看>>
1-4 多文档界面处理(2)
查看>>
《Essential Linux Device Drivers》中文版第1章
查看>>
让远程传输大文件变得更快
查看>>
complex的小困惑
查看>>
十进制、十六进制、二进制的转换
查看>>
双网卡centos7 iptables防火墙与/etc/rc.d/rc.local开机运行
查看>>
tomcat PermGen space 不足的解决方法
查看>>
STM32系统滴答_及不可不知的延时技巧 - (上)
查看>>
Linux下企业级分区方案
查看>>
CentOS下LAMP一键yum安装脚本
查看>>