网络安全-windows批处理
文章目錄
- 基礎(chǔ)簡(jiǎn)單命令
- 批處理
- 批處理基礎(chǔ)
- 批處理語(yǔ)法總結(jié)
- 批處理練習(xí)
基礎(chǔ)簡(jiǎn)單命令
1.重定向 >>為追加 >為覆蓋 echo ddd > zft.txt2.type查看文件type zft.txttype zft.txt | more 分頁(yè)顯示3. rd . /s/q cd ..\4.寫(xiě)入多行 copy con zft.txt 復(fù)制zft.txt到屏幕 copy con 文件名.擴(kuò)展名 開(kāi)始編輯內(nèi)容 ctrl+z結(jié)束編寫(xiě)5.移動(dòng) move hah.txt c:\6.刪除文件 del 路徑/文件名批量刪文件 del *.txt 刪除所有txt結(jié)尾的del *.* 刪除該目錄所有7.md feifei 創(chuàng)建文件 attrib +h feifei 隱藏文件 attrib +h +s +a feifei 隱藏文件 h隱藏文件夾 s提升為受保護(hù)的文件夾 a別人只有讀權(quán)限 attrib -h feifei 取消隱藏文件dir /a 觀看包括隱藏文件夾8.修改關(guān)聯(lián)性 assoc .txt=exefile 所有txt改為exe assoc .txt=txtfile 改回來(lái)9.關(guān)機(jī) shutdown -s -f -t 時(shí)間 定時(shí)關(guān)機(jī) -c "顯示內(nèi)容" shutdown -r -f -t 時(shí)間 定時(shí)重起 shutdown -a 取消關(guān)機(jī)10.修改文件名 ren 舊名字 新名批處理
windows批處理的作用
從上往下成批的處理每一條命令,直到執(zhí)行最后一條
如何創(chuàng)建批處理
文件名.bat
方法:新建一個(gè)記事本文件,然后將擴(kuò)展名改為.bat
批處理基礎(chǔ)
1.@echo off 作用:
- 關(guān)閉回顯功能,也就是屏蔽過(guò)程,建議放在批處理的首行
2.pause 暫停
- 一般批處理都會(huì)幫你自動(dòng)關(guān)閉,所以搞個(gè)pause就是為了防止自動(dòng)關(guān)閉
3.title 標(biāo)題
4.echo.
- 在執(zhí)行批處理腳本時(shí)候,可以空一行
5.set 設(shè)置變量,常用與在腳本的互動(dòng)賦值
-
互動(dòng)賦值:set /p time=請(qǐng)輸入時(shí)間:
-
引用變量:%time%
time即為用戶輸入的可控變量
案例
@echo off
title 小程序
echo =========
echo 歡迎使用
echo =========
set /p time=請(qǐng)輸入時(shí)間:
shutdown -s -f -t %time%
echo 定時(shí)關(guān)機(jī)已設(shè)置完畢,謝謝使用
pause
6 :和goto的用法
:標(biāo)簽名
goto 實(shí)現(xiàn)跳轉(zhuǎn)
案例:
@echo off
title 定時(shí)間關(guān)機(jī)
color 0a
:menu
echo =================
echo 菜單
echo 1.定時(shí)關(guān)機(jī)
echo 2.取消關(guān)機(jī)
echo 3.退出
echo ==================
set /p num=您的選擇:
if “%num%” == “1” goto 1
if “%num%” == “2” goto 2
if “%num%” == “3” goto 3
echo 別亂輸入
guto menu
:1
set /p a=請(qǐng)輸入時(shí)間(單位/秒):
shutdown -s -f -t %a%
guto menu
:2
shutdown -a
guto menu
:3
exit
批處理語(yǔ)法總結(jié)
1.@echo off 作用:
- 為了只顯示結(jié)果而使用他
2.pause 暫停
- 為了程序執(zhí)行完不自動(dòng)關(guān)閉而使用他
3.title 標(biāo)題
- 為了程序起一個(gè)標(biāo)題
4.echo.
- 在執(zhí)行批處理腳本時(shí)候,可以空一行
5.set 設(shè)置變量,常用與在腳本的互動(dòng)賦值
- 類(lèi)似于程序語(yǔ)言里的提取用戶輸入的變量,帶入函數(shù)運(yùn)用該變量的值
6 :和goto的用法
- 類(lèi)似于程序語(yǔ)言里面的函數(shù)
- :函數(shù)名
- go to 函數(shù)名 調(diào)用函數(shù)
7.if語(yǔ)句
- if “%num%” == “1” goto 1,類(lèi)似python,可用goto調(diào)用函數(shù),也可echo輸出內(nèi)容
8.for循環(huán)
Windows bat腳本的for語(yǔ)句基本形態(tài)如下:
之所以要區(qū)分cmd窗口和批處理文件兩種環(huán)境,是因?yàn)樵谶@兩種環(huán)境下,命令語(yǔ)句表現(xiàn)出來(lái)的行為雖然基本一樣,但是在細(xì)節(jié)上還是稍有不同,最明顯的一個(gè)差異就是:在cmd窗口中,for之后的形式變量I必須使用單百分號(hào)引用,即%I;而在批處理文件中,引用形式變量I必須使用雙百分號(hào),即%%I。為了方便起見(jiàn),若不是特別強(qiáng)調(diào),以下的講解都以批處理文件環(huán)境為例。
我們先來(lái)看一下for語(yǔ)句的基本要素都有些什么:
for、in和do是for語(yǔ)句的關(guān)鍵字,它們?nèi)齻€(gè)缺一不可;
%%I是for語(yǔ)句中對(duì)形式變量的引用,即使變量l在do后的語(yǔ)句中沒(méi)有參與語(yǔ)句的執(zhí)行,也是必須出現(xiàn)的;
in之后,do之前的括號(hào)不能省略;
command1表示字符串或變量,command2表示字符串、變量或命令語(yǔ)句;
下面來(lái)看一個(gè)Windows bat腳本的demo(記為demo1):
@echo off for %%I in (ABC) do echo %%I pause保存為.bat文件(批處理文件)并執(zhí)行,將會(huì)在彈出的批處理窗口中看到這樣的信息:
對(duì)批處理文件的for循環(huán)就是這樣簡(jiǎn)單,下面來(lái)看看for語(yǔ)句的注意事項(xiàng),并運(yùn)行更復(fù)雜的for循環(huán)實(shí)例。
for語(yǔ)句的形式變量I,可以換成26個(gè)字母中的任意一個(gè),這些字母會(huì)區(qū)分大小寫(xiě),也就是說(shuō),%%I和%%i會(huì)被認(rèn)為不是同一個(gè)變量;形式變量I還可以換成其他的字符,但是,為了不與批處理中的%0~%9這10個(gè)形式變量發(fā)生沖突,請(qǐng)不要隨意把%%I替換為%%0~%%9中的任意一個(gè);
in和do之間的command1表示的字符串或變量可以是一個(gè),也可以是多個(gè),每一個(gè)字符串或變量,我們稱(chēng)之為一個(gè)元素,每個(gè)元素之間,用空格鍵、跳格鍵、逗號(hào)、分號(hào)或等號(hào)分隔;
for語(yǔ)句依次提取command1中的每一個(gè)元素,把它的值賦予形式變量I,帶到do后的command2中參與命令的執(zhí)行;并且每次只提取一個(gè)元素,然后執(zhí)行一次do后的命令語(yǔ)句,而無(wú)論這個(gè)元素是否被帶到command2中參與了command2的運(yùn)行;當(dāng)執(zhí)行完一次do后的語(yǔ)句之后,再提取command1中的下一個(gè)元素,再執(zhí)行一次command2,如此循環(huán),直到command1中的所有元素都已經(jīng)被提取完畢,該for語(yǔ)句才宣告執(zhí)行結(jié)束。
有了以上的基礎(chǔ),我們?cè)賮?lái)看下面這個(gè)例子,這個(gè)例子修改了demo1中的部分內(nèi)容(記為demo2),結(jié)果將大不一樣:
@echo off for %%I in (A,B,C) do echo %%I pause運(yùn)行結(jié)果如下:
如果把 bbs.bathome.cn 這個(gè)字符串中的點(diǎn)號(hào)換為空格、跳格或等號(hào),執(zhí)行結(jié)果將和demo2的執(zhí)行結(jié)果別無(wú)二致。
現(xiàn)在,來(lái)分析一下demo2代碼中for語(yǔ)句的執(zhí)行過(guò)程:
1.for語(yǔ)句以逗號(hào)為分隔符,把 A,B,C 這個(gè)字符串切分成三個(gè)元素:A、B和C,由此決定了do后的語(yǔ)句將會(huì)被執(zhí)行3次;
2.第一次執(zhí)行過(guò)程是這樣的:先把 bbs 這個(gè)字符串作為形式變量I的值,帶入do后的語(yǔ)句中加以執(zhí)行,也就是執(zhí)行 echo %%I 語(yǔ)句,此時(shí)的I值為A,因此,第一次執(zhí)行的結(jié)果,將會(huì)在屏幕上顯示A這個(gè)字符串;第二次執(zhí)行和第一次執(zhí)行的過(guò)程是一樣的,只不過(guò)此時(shí)I的值已經(jīng)被替換為command1中的第二個(gè)元素了,也就是 B 這個(gè)字符串;如此循環(huán),當(dāng)?shù)谌蝒cho執(zhí)行完畢之后,整條for語(yǔ)句才算執(zhí)行完畢,此時(shí),將執(zhí)行下一條語(yǔ)句,也就是pause命令。
高級(jí)用法:
1)搜索當(dāng)前目錄下有哪些文件?
@echo off for %%i in (*.*) do echo "%%i" pause2)搜索當(dāng)前目錄下所有的文本文件?
@echo off for %%i in (*.txt) do echo "%%i" pause批處理練習(xí)
@echo off title 測(cè)試 color 0a :menu echo =========================== echo 菜單 echo 1.查看ip echo 2.查看端口 echo 3.創(chuàng)建一個(gè)用戶 echo 4.查看當(dāng)前用戶 echo 5.退出 echo ===========================set /p num=您的選擇: if "%num%" == "1" goto 1 if "%num%" == "2" goto 2 if "%num%" == "3" goto 3 if "%num%" == "4" goto 4 if "%num%" == "5" goto 5 echo 別TM亂輸入 goto menu :1 ipconfig goto menu:2 netstat -ano goto menu:3 net user zft zft /add goto menu:4 net user goto menu:5 exit總結(jié)
以上是生活随笔為你收集整理的网络安全-windows批处理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。