首页 > 系统相关 >Windows批处理

Windows批处理

时间:2024-01-08 09:46:40浏览次数:37  
标签:do log %% 命令 Windows echo 批处理 txt

Windows批处理

基本介绍

  • batch file programming是微软操作系统自带的原生开发语言,不需要任何环境搭建就可以运行。
  • 文件扩展名.bat。
  • 使用cmd.exe执行。
  • 使用内置命令和外置命令进行自动化操作。
  • 内置命令
    • 匹配规则删除文件
    • 新建文件、日志
    • 创建计算机病毒/捂脸
  • 外部命令
    • 安装软件后软件带的,如python等
  • 基本程序
    @echo off
    echo "hello world"
    pause
    
  • @echo off是不输出描述,指这种D:\git\study-notes\WindowsBatch>
  • cls清屏
  • 注释rem或者::
  • 不区分大小写
  • 本级目录:.
  • 上级目录:..
  • 根目录:\
  • 文件路径都是反斜杠:\
  • 多看/?
  • 如果中文乱码,开头添加chcp 65001,代表UTF-8字符集
    936     GB2312
    20127   US-ASCII
    65001   UTF-8
    

运算

算术运算

加减乘除、取余,先括号,后乘除取余,最后加减。

命令模式

cmd中

set /a 1+3

文本模式

在.bat文件中:

@echo off 
set /a var = 1+2*3
echo %var%
pause

var为变量名,自定义

重定向运算

一个命令的结果移交给下一个命令,或保存到某个文件当中。
> <覆盖内容,箭头方向为文件流方向
<< >>追加内容

rem 覆盖
echo "hello world" > a.txt 
rem 查看文件内容
type a.txt 
rem 追加
echo "hello world" >> a.txt 
type a.txt

多命令运算

一次多个命令
&&与,前边一个命令错误,后边的不会执行
||或,前边的即使执行失败,后边还会执行

管道运算

|
A|B,A命令结果作为B命令的输入。
例:查找当前目录下的.txt文件

dir | find ".txt"

dir的输出作为find的输入
注意:powershell中用findstr

基本命令

命令格式

  • 主命令、子命令、参数、操作
  • 命令帮助信息`/?
  • 详细帮助信息help

接收参数

接受参数命令%num
参数占位符1%2%

@echo off 
echo "hello world"
echo %1
echo %2
set /a var = %1 + %2
echo %var%
pause

个性化控制台

  • 颜色color
  • 标题title "strname"

时间

  • 设置日期date
  • 查看日期 date /T
  • 设置时间time
  • 查看时间time /T

启动命令

start
start "title" 1.bat启动新窗口并设置标题,再执行指令
start /b 1.bat不会启动新窗口

调用其他.bat

call

@echo off 
echo "hello world"
echo %1
echo %2
rem 计算
set /a var = %1 + %2
echo %var%
rem var可作为参数送入2.bat。1%也可以
call 2.bat var 
pause

2.bat文件中

@echo off
echo %1
set /a var = %1 + 3
echo %var%
pause

任务列表查看命令

tasklist查看本地或远程机器上的进程列表
tasklist /? 多看帮助

任务关闭

taskkill按照进程ID或映像名称终止任务

文件夹结构查看命令

tree

关机命令

shutdown
shutdown /s关闭计算机
shutdown /p关闭计算机,无警告
shutdown /l注销
shutdown /r完全关闭并重启计算机
shutdown /t关闭前的超时时间,单位秒,最大315360000(10年)
shutdown /i显示关闭ui,不会关机,在ui操作

计划任务

at
at 22:00/every:M,T,W,Th,F,S,Su 命令路径
at已弃用,推荐schtasks

环境变量

用环境变量代替复杂路径
set查看环境变量

文件夹及文件命令

目录

dir目录浏览,但不显示隐藏文件
mkdirmd创建目录
mkdir \a\b\c\d在a中创建b,b中c,c中d
rmdirrd删除目录(包括目录下的子目录和文件)
cd本盘符下的目录切换,c盘切d盘直接输入d:即可,不要用cd
cd \切换至根目录
cd ..切换至上级目录
ren "原名" "新名"重命名文件
copy目录复制

文件

del删除文件
del .\*.txt删除某路径下的所有.txt文件
move文件剪切

网络相关命令

net user用户操作
net localgroup用户组操作,权限高
ping连同命令,会发送ICMP数据包
talnet有自己的控制端,用于网络主机管理
tracert路由信息查看
ipconfigIP配置信息
ARP显示和修改地址解析协议(ARP)使用的(IP到物理)地址转换表

条件判断结构

@echo off
set var = hello
if %var% = hello (echo ok) else (echo no)
pause

exist文件是否存在

循环结构

  • 遍历目录
    for /d %%名称 in 路径 do只遍历目录(文件夹),不遍历文件
@echo off
rem 如果是当前目录下遍历的话,可以不写`.\*`,直接写`*`
for /d %%a in (.\*) do (
    echo %%a
)
pause>nul
  • 遍历目录和子目录下文件
    for /r "目录路径" %%v in (匹配规则,如.cs) do
for /r "." %%v in (*.py) do(
  echo %%v
)
  • 遍历数字
    for /L &&v in (start,step,end) do
for /l %%c in (1,1,10) do (
  echo %%c
  echo 1 > %%c.txt
)
  • 遍历文件内容
    for /f %%v in (文件名) do 按行遍历
for /f  %%d in (.\11.txt) do (
  if %%d == hello ( echo %%d ok ) else ( echo %%d no )
)

Virus脚本分析

  • 目录重复代码分析
    利用goto语句重复新建(md
@echo off
rem :loop 为代码块
:loop
md virus
cd virus
goto loop

示例

获取计算机信息到指定文件

@echo off
echo. >log.txt
echo Log File >> log.txt
echo. >> log.txt
echo user %username% >> log.txt
data /t >> log.txt
time /t >> log.txt
echo. >> log.txt
echo process ran by %username% >> log.txt
echo . >> log.txt
tasklist >> log.txt
echo. >> log.txt
echo network activity >> log.txt
netstat -s >> log.txt
exit

交互操作

set /p 变量名=提示(可选)
%变量名%来判断,再根据判断结果goto到程序块

@echo off
echo 1.a
echo 2.b
echo 3.c
echo 4.d

:input
set /p input=please input a number:
if %input%==1 (
    echo a
    goto a
) else if %input%==2 (
    echo b
    goto b
) else if %input%==3 (
    echo c
    goto c
) else if %input%==4 (
    echo d
    goto d
) else (
    echo error
    goto e
)
:a
echo do a ing....
pause
exit
:b
echo do b ing....
exit
:c
exit
echo do c ing....
:d
exit
echo do d ing....
:e
echo please input 1-4
goto input

计划执行

@echo off
rem 每分钟执行一次monitor.bat
schtasks /create /sc minute /mo 1 /tn monitor /tr D:\git\study-notes\WindowsBatch\monitor.bat

bat转exe

  • bat to exe converter工具

标签:do,log,%%,命令,Windows,echo,批处理,txt
From: https://www.cnblogs.com/zhanghanbao/p/17951705

相关文章

  • Windows平台安装MongoDB数据库
    一、前言MongoDB是一种流行的文档型NoSQL数据库,它具有高性能、高可用、可伸缩性等优点,因此被广泛应用于web应用程序、分布式系统、云计算等领域。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类......
  • 在Windows服务器上将Flask应用程序设置为系统服务
    在Windows服务器上将Flask应用程序设置为系统服务,可以让应用程序在后台持续运行,并在系统启动后自动启动。以下是具体步骤¹:1.**创建Windows服务脚本**:首先,我们需要编写一个用于将Flask应用程序作为服务运行的脚本。这个脚本将充当服务的主要入口点,并负责启动和停止应用程序¹。`......
  • Windows 下如何查看文件夹被哪个进程所占用
    退出U盘或删除文件时提示文件被占用,可以通过下面的方法处理:1、右击任务栏,启动任务管理器;2、选择“性能“选项卡,点击“资源监视器”;3、点击“CPU”选项卡,在“关联的句柄”右侧的“搜索句柄”输入框输入文件名或文件夹名并点击搜索......
  • Windows电脑多开软件的常见问题及解决方法
    Windows电脑多开软件的常见问题及解决方法在日常使用Windows电脑时,我们经常会遇到需要同时打开多个相同软件的情况,比如同时打开多个浏览器窗口、多个文档编辑器等。为了解决这一需求,有许多多开软件应运而生。然而,一些用户在使用多开软件时可能会遇到一些常见问题。本文将就Window......
  • 【Windows】Windows OS C盘根目录只能创建文件夹,不能创建文件的问题
    原因:Windows的安全机制解决办法:方法1不要在C盘根目录下创建文件因为这本身不是最佳实践的做法;虽然是废话但是很有道理。方法2修改C盘的安全等级用管理员运行cmd输入icaclsc:\/setintegritylevelM回车后需要正常需要等大约1分钟。如果超时或发生如下报错:复原方法:icaclsc:\/......
  • DBeaver Ultimate Edtion 22.1 Multilingual (macOS, Linux, Windows) - 通用数据库工
    作者主页:www.sysin.org通用数据库工具DBeaver是一个通用的数据库管理工具,适用于需要以专业方式处理数据的每个人。使用DBeaver,您可以像在常规电子表格中一样处理数据,根据来自不同数据存储的记录创建分析报告,以适当的格式导出信息(sysin)。对于高级数据库用户,DBeaver建议使用强......
  • Windows 10 on ARM, version 21H2 (released Nov 2021) ARM64 简体中文版、英文版(企业
    作者主页:sysin.orgWindows10,version21H2(releasedNov2021)ARM64ChineseSimplifiedWindows10,version21H2(releasedNov2021)ARM64English基于ARM的Windows10起初,Windows10(与Windows10移动版不同)只能在采用x86和x64处理器的电脑上运行。现在,Windows10......
  • Windows上ModbusTCP模拟Master与Slave工具的使用
    场景ModbusSlave与ModbusPoll主从设备模拟软件与ConfigureVirtualSerial串口模拟软件使用:ModebusSlave与ModbusPoll主从设备模拟软件与ConfigureVirtualSerial串口模拟软件使用_modbuspoll激活数据对接协议为ModbusTCP,本地开发需要使用模拟工具调试。使用ModbusSla......
  • Windows Subsystem for Android (WSA) 下载:在 Windows 11 上运行 Android 应用
    作者主页:www.sysin.org在Beta频道中为Windows预览体验成员宣布Windows11Preview上的Android™应用程序今天我们宣布的Android™应用程序适用于Windows11的第一个预览版现已在Beta频道在美国的WindowsInsiders可用,如果您还没有读过thisblogpostfromGiorgio......
  • Windows 11 正式版 Build 22000.194 官方简体中文版、英文版(消费者版、商业版)下载
    昨天A3正式发布了Windows11,版本号竟然是22000.194,也就是9月16日的测试版22000.194,仅仅是改了个文件名,特别是消费者版本hash校验都是一致的。Windows11仍然是“麦德龙风格”和经典风格分裂设计,控制面板仍然没有改进完成,和设置还是跳来跳去(只是减少了)。核心变化是继......