批處理命令三分鐘入門

工具

Notepad++(必須是Notepad++纔可以方便地編輯ANSI)
注:

  1. 以下全部的“我”請當成是你,每一步後都請你想一下你下一步會做什麼,這樣就能理解爲什麼這麼做,同時也有助於你更快地學會批處理命令。
  2. 以下所有命令都請親自逐個測試,這樣也有助於你更快地學會批處理命令。
  3. 即使你連cmd是什麼都不知道,也沒關係,從頭講起,講解很細,關鍵是註釋很細。

批處理文件

批處理文件的後綴名有兩種,分別是.bat和.com,它們的命令完全相同,只不過.bat是使用的批處理命令解釋程序,而.com是用的cmd.exe(Windows XP以上的“假dos)。

正文

NO.1

今天,我從某人在貼吧發的帖中知道了一個cmd命令[將圖片和壓縮包合併爲圖片]
copy /b 1.png+2.rar 3.png

我回帖:cmd是啥?怎麼打開?

那人回帖:“Windows”鍵 + “R”鍵調出運行,輸入“cmd”回車。

我試了試,命令果然有效。

NO.2

然後,我將命令改爲:copy /b 1.png+2.zip 3.png試了一下,竟然也可以!

但是我懶,每次都cmd不煩嗎?

然後去百度搜索了一下,發現還有.bat這東東。

直接 copy + paste ,運行,成功。

NO.3

然後懶得重命名,又修改了命令:
copy /b *.png+*.zip 成品.png
。正如那句話:“懶惰是技術發展的動力”,哈哈。

NO.4

突然想加一些實用功能,然後想出來一個可能是最簡單的功能:時間查詢,這功能應該挺簡單。

我知道時間是time,日期是date,然後百度bat顯示命令和“按任意鍵繼續…”。

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
if /i "%choice%"=="2" goto tiquyasuobao
if /i "%choice%"=="3" goto exit
echo 選擇無效,請重新輸入。
echo.
goto cho
::從“if”開始循環。
@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
color 0A
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”表示此命令的輸出不顯示。
for /f "delims=" %%a in ('dir /a-d /b 分解後.png') do (
ren "%%~a" "分解後.zip"
)
pause
goto menu
:exit
@ECHO OFF
color 0A
goto menu

NO.8

更改大小。

@echo off&setlocal enabledelayedexpansion
title 圖片壓縮包合成
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
color 0A
goto menu

NO.9

最後來個標題。

@echo off&setlocal enabledelayedexpansion
title 圖片壓縮包合成
::標題
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
color 0A
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 清屏
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章