批处理命令三分钟入门

工具

Notepad++(Notepad++可以方便地编辑各种编码格式)
Notepad++英文官网
32位官网直链下载(GitHub)
64位官网直链下载(GitHub)

批处理文件

批处理文件的后缀名有两种,分别是.bat和.com,它们的命令完全相同,只不过.bat是使用的批处理命令解释程序,而.com是用的cmd.exe(Windows XP以上的“假dos)。

正文

NO.1

今天,我从某人在贴吧发的帖中知道了一个cmd命令[将图片和压缩包合并为图片]
copy /b 1.png+2.rar 3.png

NO.2

然后,我将命令改为:copy /b 1.png+2.zip 3.png试了一下,竟然也可以!

但是我懒,每次都cmd不烦吗?

直接 copy + paste,保存为bat ,运行,成功。

NO.3

然后懒得重命名,又修改了命令:
copy /b *.png+*.zip 成品.png
正如那句话:“懒惰是技术发展的动力”,哈哈。

NO.4

突然想加一些实用功能,然后想出来一个可能是最简单的功能:时间查询,这功能应该挺简单。

我知道时间是time,日期是date,然后……

echo  现在是北京时间:
::输出文字
::“::”后的内容不会执行,相当于注释。
echo.
::输出空行
echo  %date% %time%
::时间
echo.
::输出空行
copy /b *.png+*.zip 成品.png
::主功能命令
pause
::显示“按任意键继续…”

NO.5

但是,看着不顺眼,输出“2020/05/14 周四 10:26:45.19”,我想要带文字的……

set tm1=%time:~0,2%
set tm2=%time:~3,2%
set tm3=%time:~6,2%
set dt1=%date:~0,4%
set dt2=%date:~5,2%
set dt3=%date:~8,2%
::设定变量&赋值,格式为“set”+[空格]+[变量]+“=”+“值”
::值的格式:“量”(如time)+“:”+“~”+“取的位数”+“,”+“值的位数”(自动补零使用)
echo.
::输出空行
echo  现在是北京时间:
::输出文字
echo.
::输出空行
echo  %dt1%年%dt2%月%dt3%日 %tm1%时%tm2%分%tm3%秒
::实现时间的显示
copy /b *.png+*.zip 成品.png
::主功能命令
pause
::显示“按任意键继续…”

NO.6

让它实现还原的功能岂不更好?然后↓。

set tm1=%time:~0,2%
set tm2=%time:~3,2%
set tm3=%time:~6,2%
set dt1=%date:~0,4%
set dt2=%date:~5,2%
set dt3=%date:~8,2%
echo.
echo  现在是北京时间:
echo.
echo  %dt1%年%dt2%月%dt3%日 %tm1%时%tm2%分%tm3%秒
echo.
echo  合并请输入“1”后回车执行。
echo.
echo  分解请输入“2”后回车执行。
echo.
echo  退出请输入“3”后回车执行。
:cho
set choice=
echo.
set /p choice=请选择:
IF NOT "%choice%"=="" SET choice=%choice:~0,1%
::如果内容不为      ↓ 的内容,则继续执行。
if /i "%choice%"=="1" goto hecheng
::如果内容为“1”,执行hecheng标签。
if /i "%choice%"=="2" goto tiquyasuobao
if /i "%choice%"=="3" goto exit
echo 选择无效,请重新输入。
echo.
goto cho
::回到cho标签。
@echo off
::关闭回显。
echo.
:hecheng
::命令标签
copy /b *.png+*.zip 成品.png
pause
goto menu
::结束
:tiquyasuobao
for /f "delims=" %%a in ('dir /a-d /b 欲分解.png') do (
ren "%%~a" "分解后.zip"
)
::更改文件名。
pause
goto menu
:exit
@ECHO OFF
goto menu
::退出

NO.7

然后又有个问题,“欲分解.png”的文件名岂不是被修改了?分解怎能在原件上分解?
下面讲述“对‘复印件’进行修改”

set tm1=%time:~0,2%
set tm2=%time:~3,2%
set tm3=%time:~6,2%
set dt1=%date:~0,4%
set dt2=%date:~5,2%
set dt3=%date:~8,2%
echo.
echo  现在是北京时间:
echo.
echo  %dt1%年%dt2%月%dt3%日 %tm1%时%tm2%分%tm3%秒
echo.
echo  合并请输入“1”后回车执行。
echo.
echo  分解请输入“2”后回车执行。
echo.
echo  退出请输入“3”后回车执行。
:cho
set choice=
echo.
set /p choice=请选择:
IF NOT "%choice%"=="" SET choice=%choice:~0,1%
if /i "%choice%"=="1" goto hecheng
if /i "%choice%"=="2" goto tiquyasuobao
if /i "%choice%"=="3" goto exit
echo 选择无效,请重新输入。
echo.
goto cho
@echo off
echo.
:hecheng
copy /b *.png+*.zip 成品.png
pause
goto menu
:tiquyasuobao
copy .\欲分解.png .\分解后.png >nul 2>nul
::复制文件(相对路径)
::在命令后面+[空格]+“>nul 2>nul”表示此命令的输出(返回值,如“已复制, 5 个文件, 0 个失败”)不显示。
for /f "delims=" %%a in ('dir /a-d /b 分解后.png') do (
ren "%%~a" "分解后.zip"
)
pause
goto menu
:exit
@ECHO OFF
goto menu

NO.8

更改大小。

@echo off&setlocal enabledelayedexpansion
::命令可以用“&”合并,如(命令1)&(命令2),最好加括号。
::本命令即:
::@echo off
::setlocal enabledelayedexpansion
::
mode con cols=50 lines=32 
::cols,左右长度,也就是宽,单位为“列”;lines,上下长度,也就是高,单位为“行”。
set tm1=%time:~0,2%
set tm2=%time:~3,2%
set tm3=%time:~6,2%
set dt1=%date:~0,4%
set dt2=%date:~5,2%
set dt3=%date:~8,2%
echo.
echo  现在是北京时间:
echo.
echo  %dt1%年%dt2%月%dt3%日 %tm1%时%tm2%分%tm3%秒
echo.
echo  合并请输入“1”后回车执行。
echo.
echo  分解请输入“2”后回车执行。
echo.
echo  退出请输入“3”后回车执行。
:cho
set choice=
echo.
set /p choice=请选择:
IF NOT "%choice%"=="" SET choice=%choice:~0,1%
if /i "%choice%"=="1" goto hecheng
if /i "%choice%"=="2" goto tiquyasuobao
if /i "%choice%"=="3" goto exit
echo 选择无效,请重新输入。
echo.
goto cho
@echo off
echo.
:hecheng
copy /b *.png+*.zip 成品.png
pause
goto menu
:tiquyasuobao
copy .\欲分解.png .\分解后.png >nul 2>nul
for /f "delims=" %%a in ('dir /a-d /b 分解后.png') do (
ren "%%~a" "分解后.zip"
)
pause
goto menu
:exit
@ECHO OFF
goto menu

NO.9

最后来个标题。

@echo off&setlocal enabledelayedexpansion
title 图片压缩包合成
::bat执行时控制台标题
mode con cols=50 lines=32 
echo.
echo  注:
echo.
echo  1. 请将所有文件单独放置在同一个文件夹中。
echo.
echo  2. 批处理文件会自动识别.png和.zip文件。
echo.
echo  3. 合并后文件的文件名为“成品.png”。
echo.
echo  4. 分解请将欲分解文件的文件名改为“欲分解.png。
echo.
echo  5. 分解后文件的文件名为“分解后.zip”。
echo.
echo  作者联系邮箱:
echo.
set tm1=%time:~0,2%
set tm2=%time:~3,2%
set tm3=%time:~6,2%
set dt1=%date:~0,4%
set dt2=%date:~5,2%
set dt3=%date:~8,2%
echo.
echo  现在是北京时间:
echo.
echo  %dt1%年%dt2%月%dt3%日 %tm1%时%tm2%分%tm3%秒
echo.
echo  合并请输入“1”后回车执行。
echo.
echo  分解请输入“2”后回车执行。
echo.
echo  退出请输入“3”后回车执行。
:cho
set choice=
echo.
set /p choice=请选择:
IF NOT "%choice%"=="" SET choice=%choice:~0,1%
if /i "%choice%"=="1" goto hecheng
if /i "%choice%"=="2" goto tiquyasuobao
if /i "%choice%"=="3" goto exit
echo 选择无效,请重新输入。
echo.
goto cho
@echo off
echo.
:hecheng
copy /b *.png+*.zip 成品.png
pause
goto menu
:tiquyasuobao
copy .\欲分解.png .\分解后.png >nul 2>nul
for /f "delims=" %%a in ('dir /a-d /b 分解后.png') do (
ren "%%~a" "分解后.zip"
)
pause
goto menu
:exit
@ECHO OFF
goto menu

结尾福利

符号和命令功能和意义
@回显屏蔽
>与>>重定向①
<重定向②
|管道符号
^转义符
&、&&、||逻辑命令符
cd显示当前目录名或改变当前目录。
md创建目录。
rd删除一个目录。
dir显示目录中的文件和子目录列表。
tree以图形显示驱动器或路径的文件夹结构。
path为可执行文件显示或设置一个搜索路径。
xcopy复制文件和目录树。
type显示文本文件的内容。
copy将一份或多份文件复制到另一个位置。
del删除一个或数个文件。
move移动文件并重命名文件和目录。(Windows
ren重命名文件。
replace替换文件。
attrib显示或更改文件属性。
find搜索字符串。
fc比较两个文件或两个文件集并显示它们之间的不同
ping进行网络连接测试、名称解析
ftp文件传输
net网络命令集及用户管理
telnet远程登陆
ipconfig显示、修改TCP/IP设置
msg给用户发送消息
arp显示、修改局域网的IP地址-物理地址映射列表
at安排在特定日期和时间运行命令和程序
shutdown立即或定时关机或重启
tskill结束进程
taskkill结束进程(比tskill高级,但WinXPHome版中无该命令)
tasklist显示进程列表(Windows/XP/Home/Edition中没有)
sc系统服务设置与控制
reg注册表控制台工具
powercfg控制系统上的电源设置
cls清屏
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值