windows中批处理文件

目录类命令

md创建目录

H:\new>md test1

H:\new>dir
 驱动器 H 中的卷是 tmp
 卷的序列号是 368A-F337

 H:\new 的目录

2017/11/27  22:57    <DIR>          .
2017/11/27  22:57    <DIR>          ..
2017/11/27  22:57    <DIR>          test1
               0 个文件              0 字节
               3 个目录 10,501,025,792 可用字节

cd 切换当前的目录

H:\new>cd test1    #切换到test1目录下
H:\new\test1>cd..  #切换到父目录下
H:\new>cd /          #切换到根目录下
H:\new>cd \

rd 删除空的子目录

H:\new>rd test1  # 删除空目录test1

dir 显示当前目录下的文件

H:\new>dir
 驱动器 H 中的卷是 tmp
 卷的序列号是 368A-F337

 H:\new 的目录

2017/11/27  23:05    <DIR>          .
2017/11/27  23:05    <DIR>          ..
2017/11/27  23:05    <DIR>          test1
               0 个文件              0 字节
               3 个目录 10,501,025,792 可用字节

tree显示磁盘的目录结构


H:\new>tree
卷 tmp 的文件夹 PATH 列表
卷序列号为 368A-F337
H:.
├─test1
└─test2

del删除整个目录下所有的文件

H:\>del new
H:\new\*, 是否确认(Y/N)? y

磁盘操作类命令

fdisk 磁盘格式化

PS C:\Users\Administrator> format d:
文件系统的类型是 NTFS。
输入驱动器 D: 的当前卷标新建卷

警告,非移动磁盘驱动器 D:
上的所有数据将会丢失!
是否继续进行格式化(Y/N)?y
正在格式化 10206M
卷标(32 个字符;如果没有,请按 Enter)?
正在创建文件系统结构。
格式化已完成。
总共有       10.0 GB 的磁盘空间。
       9.9 GB 可用。

chkdsk 检测磁盘类型

D:\>chkdsk
文件系统的类型是 NTFS。

警告! 未指定 F 参数
在只读模式下运行 CHKDSK。

label 修改、创建磁盘的卷标

D:\>label d: tmp

vol 显示磁盘的卷标和序列号

D:\>vol
 驱动器 D 中的卷是 tmp
 卷的序列号是 D090-D72C

文件操作类命令

copy复制单个文件

D:\>copy 1.txt 2.txt
已复制         1 个文件。

xcopy 复制整个目录

G:\>xcopy new test /e
目标 test 是文件名
还是目录名
(F = 文件,D = 目录)? d
new\new.txt
复制了 1 个文件

type查看文本文件的内容

G:\>type test\new.txt
你好,欢迎来到DOS的世界

ren 修改文件的名称

G:\test>ren new.txt 2.txt

attrib 显示和更改文件的属性

G:\test>attrib /?
显示或更改文件属性。


G:\test>attrib 2.txt        查看文本的属性
A            G:\test\2.txt

G:\test>attrib 2.txt -a     删除文件的归档属性

其他命令

cls 清屏

ver 查看系统版本

C:\Users\Administrator>ver

Microsoft Windows [版本 6.1.7601]

time 设置系统时间

C:\Users\Administrator>time
当前时间: 23:43:44.14
输入新时间:

net 命令

查看帮助

C:\Users\Administrator>net help
此命令的语法是:

NET HELP
command
     -或-
NET command /HELP

  可用的命令为:

  NET ACCOUNTS             NET HELPMSG              NET STATISTICS
  NET COMPUTER             NET LOCALGROUP           NET STOP
  NET CONFIG               NET PAUSE                NET TIME
  NET CONTINUE             NET SESSION              NET USE
  NET FILE                 NET SHARE                NET USER
  NET GROUP                NET START                NET VIEW
  NET HELP

  NET HELP NAMES 解释 NET HELP 语法行中的不同类型名称。
  NET HELP SERVICES 列出可以启动的一些服务。
  NET HELP SYNTAX 解释如何读取 NET HELP 语法行。
  NET HELP 命令 | MORE 显示帮助,一次显示一屏。
net user 修改主机用户名

查看所有的用户

C:\Users\Administrator>net user

\\win-2 的用户帐户

----------------------------------------------------------------
Administrator            cloudbase-init           Guest
zhangsan
命令成功完成。

增加用户

C:\Users\Administrator>net user zhangsan abcd@1234 /add
命令成功完成。

查看用户信息

C:\Users\Administrator>net user zhangsan
用户名                 zhangsan
全名
注释
用户的注释
国家/地区代码          000 (系统默认值)
帐户启用               No
帐户到期               从不

激活用户(账户启用状态设置为yes)

C:\Users\Administrator>net user zhangsan /active:yes
命令成功完成。
net localgroup 修改计算机的本地组

显示计算机上所有的组

C:\Users\Administrator>net localgroup

\\win-2 的别名

---------------------------------------------
*Access Control Assistance Operators
*Administrators
*Backup Operators
*Certificate Service DCOM Access
*Cryptographic Operators
*Distributed COM Users
*Event Log Readers
*Guests
*Hyper-V Administrators
*IIS_IUSRS
*Network Configuration Operators
*Performance Log Users
*Performance Monitor Users

添加用户到指定的组中

C:\Users\Administrator>net localgroup Administrators zhangsan /add
命令成功完成。
net start 列出正在运行的服务

列出所有运行的服务

C:\Users\Administrator>net start
已经启动以下 Windows 服务:

   Application Host Helper Service
   Background Intelligent Transfer Service
   Background Tasks Infrastructure Service
   Base Filtering Engine
   Certificate Propagation
   COM+ Event System
   Credential Manager
   Cryptographic Services
   DCOM Server Process Launcher
   DHCP Client
   Diagnostic Policy Service
net time 修改时间和设置和同步时间

同步时间服务器

C:\Users\Administrator>net time \\time.windows.com
net view 显示计算机上共享的资源列表

查看局域网中或者指定的ip共享的资源列表

C:\Users\Administrator>net view

C:\Users\Administrator>net view \\192.168.2.21
net config 显示系统网络配置
net logoff 断开连接的共享
net pause 暂停某服务
net send 向对方发送信息
net ver 局域网中正常使用连接的类型和信息
net share 查看本地开启的共享

批处理命令

echo 显示信息

echo hello    输出

echo off    关闭回显
@echo off  隐藏该命令
echo %value%  显示变量的值

set 设置变量的值


G:\test>set value1=1

G:\test>echo %value1%
1
/p 接收客户输入的数据

SET /P variable=[promptString]
/P 命令行开关允许将变量数值设成用户输入的一行输入。读取输入
行之前,显示指定的 promptString。promptString 可以是空的。

C:\Users\Administrator>set /p value=输入数值:
输入数值:123

C:\Users\Administrator>echo %value%
123
/a 计算算数表达式
C:\Users\Administrator>set /a 1+1
2
C:\Users\Administrator>set /a 0x23
35

@命令

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

@echo off

@echo Now initializing the program,please wait a minite...

pause 暂停

C:\Users\Administrator>pause /?
暂停批处理程序,并显示以下消息:
    请按任意键继续. . .
C:\Users\Administrator>

setlocal enabledelayedexpansion 设置变量延时扩展

开启该配置之后输出变量,普通的输出变量的方法是echo %value%开启该配置之后的输出变量的方法echo !value!

@echo off

setlocal enabledelayedexpansion

set value1=12333
echo !value1!
pause

if 条件判断

@echo off       #关闭回显功能

:start
cls
echo -------------显示指定的目录-------------
set /p dir_name=输入目录:   #将输入的值赋值给dir_name
dir %dir_name%
set dir_name=         #清空变量
pause               # 暂停
cls
echo --------------目录------------------
echo --------1.继续
echo --------2.退出
echo ------------------------------------

set /p num=请输入选项:
if "%num%"=="1" goto start

exit      #退出
判断文件是否存在
@echo off
if exist c:\new.bat (
echo "文件存在"
) else (
echo "文件不存在"
)
pause
判断变量是否相同
  EQU - 等于
  NEQ - 不等于
  LSS - 小于
  LEQ - 小于或等于
  GTR - 大于
  GEQ - 大于或等于
@echo off

set value1=123
set /p value2=输入数值:

if %value1%==%value2% (
echo %value1%  %value2% 相等
) else (
echo %value1%  %value2% 不等
)
pause
判断变量是否被赋值
@echo off

set value1=123


if defined value1 (
echo value1的值是%value1%  
) else (
echo value1的值是空
)
pause
判断上次执行的结果是否成功
@echo off

set /p value1=输入命令:

%value1%
cls

if %errorlevel%==0 (
echo 可以执行  
) else (
echo 不能执行
)
pause

for循环

for /F   分块提取文件
for /D  显示当前目录下所有指定的目录名 
for /R  枚举文件和目录
for /L  计次循环
子参数:tokens(块)、delims(分块标志)、eol(忽略行)、skip(跳过行)、userbackq

在cmd窗口中:

for %i  in (command1)   do command2

在批处理中:

for %%i in (command1)  do  command2

注:
    1.for、in、do这三个是for的关键字,缺一不可
    2.%%i是for语句中形式变量的引用,即使它在for后面的语句中没有参与执行操作,此处是必须写得。
    3.in 之后do之前的括号是不能省略的。
    4.command1表示字符串或变量,command2表示字符串、变量或命令语句。
@echo off

for %%i in (www.baidu.com) do echo %%i
pause

注意:

1.for语句中的形式变量i 可以是26个字母中的任意一个,这些字母是区分大小写的,%%i 和%%I是表示不同的变量,为了不要批处理文件中的变量%0~%9的形式变量冲突,所以不要随意将%%i替换为%%0~%%9之间的任意一个。
2.in和do之间的command1表示的字符串或变量可以是一个,也可以是多个,每一个字符串或变量,我们称之为元素,每一个元素之间,使用空格、tab键、逗号、分号或等号分隔。
3.for语句依次提取command1中的每一个元素。把它的值赋予形式变量,带到do后面的command2中参与命令的执行,并且每一次只提取一个元素。
显示文本文件中以空格区分的第一段文字

文本文件 2.txt

1,早被婵娟误,欲妆临镜慵,承恩不在貌,教妾若为容。 风暖鸟声碎,日高花影重,年年越溪女,相忆采芙蓉。
2,阳月南飞雁,传闻至此回,我行殊未已,何日复归来.江静潮初落,林昏瘴不开,明朝望乡处,应见陇头梅.
3,本以高难饱,徒劳恨费声,五更疏欲断,一树碧无情。薄宦梗犹泛,故园芜已平,烦君最相警,我亦举家清。
4,本以高难饱,徒劳恨费声,五更疏欲断,一树碧无情。薄宦梗犹泛,故园芜已平,烦君最相警,我亦举家清。

脚本文件

  • 显示第一段代码

    @echo off
    
    for /f "tokens=1 delims=," %%i in (2.txt) do (
    echo %%i
    )
    
    pause

    注释: tokens 表示取第几段内容
    delims 表示分隔符,如果是逗号会区分,全角和半角之分。

  • 显示两段字符

    @echo off
    
    for /f "tokens=1,2 delims=," %%a in (2.txt) do (
    
    echo %%a %%b
    )
    pause
  • 显示第一段到第三段代码

    @echo off
    
    for /f "tokens=1-3 delims=," %%a in (2.txt) do (
    
    echo %%a %%b %%c
    )
    pause
  • 显示第2段、第三段、以及其他所有的部分

    @echo off
    
    for /f "tokens=2,3,* delims=," %%a in (2.txt) do (
    
    echo %%a %%b %%c
    )
    pause
忽略某一行

忽略以’2’开头的这一行

@echo off

for /f "eol=2 tokens=*" %%a in (2.txt) do (

echo %%a %%b %%c
)
pause
跳过开始的前几行

直接跳过文件开头的前2行,从第三行开始。

@echo off

for /f "skip=2 tokens=*" %%a in (2.txt) do (

echo %%a %%b %%c
)
pause
显示当前目录下,以doc、proc开头的文件

改文件存放到C盘下,会显示C盘下的所有以win、pro开头的目录文件

@echo off

for /d  %%a in (win*,pro*) do (

echo %%a
)
pause
显示指定位置下,以tmp结尾的文件
@echo off

for /r %systemroot%  %%a in (*.tmp) do (

echo %%a
)
pause
/l 累计循环
@echo off

set count=0
for /l  %%a in (1,2,100) do (

set /a count+=1 
)

echo 累计次数: %count%
pause

(1,2,100) 1表示开始的数字,2表示步长,100表示最终的数字

usebackq参数

usebackq - 指定新语法已在下类情况中使用:
在作为命令执行一个后引号的字符串并且一个单 引号字符为文字字符串命令并允许在 file-set中使用双引号扩起文件名称。

@echo off
for /f "usebackq" %%i in ("C:\Program Files\Windows Sidebar\1.txt") do (
echo %%i

)
pause

call命令

在可执行文件1.bat中

@echo off
echo hello world

在可执行文件2.bat中

@echo off

call 1.bat
echo over
pause
传递参数

在批处理文件1.bat中

@echo off
echo %1

在批处理文件2.bat中

@echo off

set /p value=输入一个数值:
call 1.bat %value%
echo over
pause

find 和findstr 命令

查找文件中的任意字符不包括空行

“.” 表示任意一个字符
“*”表示任意多个字符

findstr . 2.txt
或
findstr ".*" 2.txt
包括空字符或空行
findstr .* 2.txt
或
findstr ".*" 2.txt
查询0-9的字符串或行
findstr "[0-9]" 2.txt
查看指定的字符

[] 表示其中集合的任意一个
[^abd] 如果[]中有^ 表示取反

findstr "[a-zA-Z]" 2.txt    //所有的字符
findstr "[wb]" 2.txt        //查询w或者b
findstr "M[wb]" 2.txt     //查询Mw或者Mb
查询指定开头、结尾的
findstr "^#" 2.txt   //查找以#开头的行
findstr "com$" 2.txt   //查找以com结尾的行

实例1.

echo off
setlocal enabledelayedexpansion
setlocal
@color 2E       //设置背景、字体的颜色
@mode con cols=60 lines=30    //设置窗口的大小
@title 扫描工具   //新窗口的名称

:start
cls
echo.        //输出空格
echo.
echo -----------------选择执行的操作--------------
echo.
echo.
echo ---------1.选择tcp方式扫描
echo ---------2.使用SYN方式扫描
echo ---------3.关闭防火墙
echo ---------4.退出本程序
echo.
echo.
echo 提示:★☆XP系统用户选择TCP方式
echo       ★☆非XP系统用户选择SYN方式
echo       ★☆ 扫描当前请关闭防火墙
echo.
echo.

:scan
set num=           //清空变量
set /p num=请选择要执行的操作:
if "!num!"=="1" goto 1
if "!num!"=="2" goto 2
if "!num!"=="3" goto 3
if "!num!"=="4" goto 4
echo 选择无效,请重新输入
echo.
goto scan     //与上面的:scan构成死循环


:1
cls
set xiancheng=          //给变量赋值为空
set /p xiancheng=请输入线程数:
if "!xiancheng!"=="" goto 1

set port=
set /p port=请输入扫描的端口:
if "!port!"=="" goto 1


if exist ip.txt del ip.txt
if not exist ip.txt echo 请输入ip段,例如:192.168.1.1 192.168.1.3>ip.txt&ip.txt      //打开一个txt的文本

for /f "skip=1 tokens=1,2 delims= " %%i in (ip.txt) do (
echo %%i  %port% > new.txt
echo %%j %port%>> new.txt
)

goto end



:2
cls
echo.
echo.
echo 暂无此功能,按任意键返回上一级菜单
pause>nul
goto end

:3
cls
echo.
netsh firewall set opmode disable    //关闭防火墙
echo 防火墙已经关闭
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值