当前位置: 首页 > news >正文

Windows批处理文件bat/cmd

cmd新建文件

     type nul>a.cpp

新建a.cpp

 

 

1、@echo off

        通常我们将这条指令写在我们批处理文件的第一行,因为有了这条指令之后,当我们在运行.bat的时候,就不会将文件里面的内容打印出来了,如果没有这句话,会先去将文件里面的内容打印在屏幕上,通常我们是不希望使用者了解里面的代码结构的.

 

2、@ 命令

     表示不显示@后面的命令,在入侵过程中(例如使用批处理来格式化敌人的硬盘)自然不能让对方看到你使用的命令啦。
Sample:@echo off

     如果只写echo off的话,是这句话后面的命令不显示了,这句话本身还是会显示的,所以我们用@echo off, 这句话也不显示了

 

3、pause命令——暂停

      pause在指令中的作用是暂停,当我们需要在文件运行的中间让其暂停一下,看一下我们的输出,就会使用PAUSE命令,然后在控制台就会显示:“请按任意键以继续”,当我们按下任意键之后,文件就会继续运行了,当我们希望在屏幕上显示自己的语句的时候,可以这样写:

@echo off
echo "hello world"
pause
echo "yes"

 

4、set命令——设置变量

set a=1
set string1=abcdefg

       使用set命令,我们可以设置变量,其中“a”和“string1”就是我们设置的变量,可以直接给设置的变量赋值。

当我们希望将设置的变量显示在屏幕的时候,需要在变量的前后带上“%”,然后使用echo命令将设置的变量进行回显。

echo %a%
echo %string1%

       当我们需要输出空行的时候,使用“echo.”,其中“.”必须紧跟在echo命令的后面,而且“.”也可以被,:;”/等任一的符号代替,这样我们就会输出一个空行,相当于敲了一个回车。

 

5、REM 和 ::

这两条指令的作用是帮助我们进行指令的注释,类似于C++中的:“/**/”和“//”

REM set a=1
::set string1=abcdefg

 

6、call指令

在某一批处理程序中调用另外一个批处理文件,就是用call指令

echo off
call E:\Temp.bat
echo this is Zzzmain.bat
pause

 

7、%0 %1 %2 %3 %4 %5 %6 %7 %8 %9 %*     命令行传递给批处理的参数

%0 批处理文件本身,包括完整的路径

%1 第一个参数

%9 第九个参数

%* 代表全部参数

 

8、 >重定向符

>>重定向符

echo "hello world" >> 1.txt

> 清除文件中原有的内容后再写入(如果文件不存在会新建)
>> 追加内容到文件末尾,而不会清除原有的内容(如果文件不存在会新建)

 

9、<      从文件中获得输入信息,而不是从屏幕上

一般用于 date time label 等需要等待输入的命令

    @echo off
    echo 2005-05-01>temp.txt
    date <temp.txt
    del temp.txt

这样就可以不等待输入直接修改当前日期


10、>nul  和  nul 2>nul

      这个">nul 2>nul"可以屏蔽一切屏幕的输出可以这样理解:

     假如执行一个命令,但是不想在屏幕里看到这个命令的执行情况,可以使用"[命令]>nul"就可以屏蔽命令在屏幕上的输出,但是有的命令执行会出错,即使用了">nul"也不能屏蔽命令产生的信息,所以就在后面加" 2>nul"这个,就是"[命令]>nul+空格+2>nul",这样,不管命令是否正确的运行,都不会在屏幕看到这个命令所产生的屏幕显示了。

 

10、 | 命令管道符

将第一条命令的结果当作第二条命令的参数使用

dir c:\ | find "txt"

在c盘目录下查找txt文件

find将dir c:\的结果当作参数使用

 

11、

&
顺序执行多条命令,而不管命令是否执行成功
 
&&
顺序执行多条命令,当碰到执行出错的命令后将不执行后面的命令
find "ok" c:test.txt && echo 成功
如果找到了"ok"字样,就显示"成功",找不到就不显示
 
 ||
顺序执行多条命令,当碰到执行正确的命令后将不执行后面的命令
find "ok" c:test.txt || echo 不成功
 

12、if 语句

if "%1"=="/a" echo 第一个参数是/a


if /i "%1" equ "/a" echo 第一个参数是/a
/i 表示不区分大小写,equ 和 == 是一样的,其它运算符参见 if/?


if exist c:test.bat echo 存在c:test.bat文件


if not exist c:windows (
     echo 不存在c:windows文件夹
     )


if exist c:test.bat (
     echo 存在c:test.bat
     ) else (
     echo 不存在c:test.bat
     )

 

13、for循环

for %%i in (c: d: e: f:) do echo %%i
依次调用小括号里的每个字符串,执行 do 后面的命令
注意%%i,在批处理中 for 语句调用参数用2个%
默认的字符串分隔符是"空格键","Tab键","回车键"


for %%i in (*.txt) do find "abc" %%i
对当前目录里所有的txt文件执行 find 命令

 

 

 

相关文章:

  • IDEA 操作快捷键
  • Python迭代器 iterator(iter next) 生成器 generator(yield) yield
  • Python协程(generator, yield, send)
  • 虚拟机 虚拟硬盘
  • 8086处理器 硬盘
  • 虚拟机快照
  • 虚拟机克隆 将虚拟机导出为 OVF 格式
  • VMware虚拟机与主机共享文件夹
  • Python异步IO协程 (asyncio)
  • 编译原理 1.1
  • 编译原理1.2
  • 汇编语言的种类
  • Bochs虚拟机 编写主引导扇区程序并执行
  • 编译原理2.1
  • Python 函数式编程(一):高阶函数/函数名变量
  • 【个人向】《HTTP图解》阅后小结
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • C++回声服务器_9-epoll边缘触发模式版本服务器
  • Java IO学习笔记一
  • Java 内存分配及垃圾回收机制初探
  • leetcode386. Lexicographical Numbers
  • linux学习笔记
  • Markdown 语法简单说明
  • miaov-React 最佳入门
  • Python连接Oracle
  • SpringBoot 实战 (三) | 配置文件详解
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 聊聊directory traversal attack
  • 时间复杂度与空间复杂度分析
  • 使用Swoole加速Laravel(正式环境中)
  • 在weex里面使用chart图表
  • raise 与 raise ... from 的区别
  • Spring第一个helloWorld
  • 说说我为什么看好Spring Cloud Alibaba
  • ​2020 年大前端技术趋势解读
  • ​2021半年盘点,不想你错过的重磅新书
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • ​如何在iOS手机上查看应用日志
  • # 数论-逆元
  • (强烈推荐)移动端音视频从零到上手(下)
  • (十一)c52学习之旅-动态数码管
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • (转)EXC_BREAKPOINT僵尸错误
  • (转)linux自定义开机启动服务和chkconfig使用方法
  • (转)Sublime Text3配置Lua运行环境
  • .bat批处理出现中文乱码的情况
  • .net core Swagger 过滤部分Api
  • .net framework 4.0中如何 输出 form 的name属性。
  • .Net各种迷惑命名解释
  • .net通用权限框架B/S (三)--MODEL层(2)
  • @Bean注解详解
  • [20150707]外部表与rowid.txt
  • [ActionScript][AS3]小小笔记
  • [Android Pro] listView和GridView的item设置的高度和宽度不起作用
  • [Asp.net MVC]Asp.net MVC5系列——Razor语法