學會這幾個.你就能成爲bat腳本小子了...(轉來看看的)
批處理中的符號 [詳解+示例]經常有朋友給我短消息,問某個符號是什麼意思
所以今天特地寫了這個貼
1 . 點
與echo連用,作用是換行
示例1 [輸出空行]
echo.
2 > 定向符[輸出]
將命令的輸出進行重定向 [一般用於將結果寫入文件]
注意 nul 爲空設備 >nul 則用於屏蔽輸出內容 [如 pause>nul]
示例2 [向1.txt中寫入字符串 wind]
echo wind>1.txt
3 >> 定向符[輸出]
將命令的輸出進行重定向 [一般用於將結果寫入文件]
注意,定向到文件時,它是在末尾追加 > 則會覆蓋
示例3 [向1.txt中追加寫入字符串 wind]
echo wind>>1.txt
4 < 定向符[輸入]
配合set /p 使用時,從指定的文件中獲取字符串 賦值給變量
示例4 [將1.txt中第1行內容賦值給變量 wind]
set /p wind=<1.txt
5 & 連接符
連接兩個命令
注意 不論前面的命令是否成功執行 後面的命令都將執行
示例5 [依次執行兩個echo 命令]
echo wind& echo snow
6 && 連接符
連接兩個命令
注意 僅當前面的命令成功執行時 後面的命令纔會被執行
示例6 [echo 命令成功執行 type 命令也將被執行]
echo wind&& type 1.txt
示例7 [hello 命令執行失敗 type 命令不會被執行]
hello&& type 1.txt
7 || 連接符
連接兩個命令
注意 僅當前面的命令執行失敗時 後面的命令纔會被執行
示例8 [echo 命令成功執行 type 命令不會被執行]
echo wind|| type 1.txt
示例9 [hello 命令執行失敗 type 命令將被執行]
hello|| type 1.txt
8 | 傳遞符
將前面命令的結果 傳遞給後面的命令使用 [一般用於查找]
示例10 [顯示字符串wind 並 傳遞給find 查找 關鍵字 w]
echo wind| find "w"
2,6,7,8綜合 示例11 [將字符串傳遞給find查找 並 輸出查找結果]
echo wind| find "w">nul&& echo 找到字符w|| echo 未找到字符w
9 ^ 轉義符 [脫字符]
脫去特殊符號的作用 使之成爲一個純粹的符號
示例12 [輸出字符串 &&&&& ]
echo ^&^&^&^&^&
10 @ at
其作用相當於 echo off 不顯示命令本身
不同之處是@僅處理單個命令 echo off則是全局的
示例13 [命令行不會顯示]
@echo wind
11 % 百分號
兩個百分號表示取值
示例14 [顯示變量 wind 的值 smile]
set wind=smile
echo wind的值爲 %wind%
注意,如果要輸出一個百分號 則在批處理中要寫成兩個
12 * 星號
通配作用
示例15 [刪除所有文本文件]
del *.txt
下面幾點要單獨說一下
一。
>nul 或者 1>nul作用是屏蔽成功執行命令的輸出內容
2>nul 作用是屏蔽命令執行失敗的輸出內容
1>nul 2>nul 作用是屏蔽的所有輸出提示 [不論正確與否]
二。
echo時,後面不一定要根空格,可以是其他符號 比如
echo.wind 或者是 echo=wind 或者是 echo;wind 等
三。
for 循環中 一些符號的作用和空格一樣,不會被當作符號輸出 比如
for %%1 in (wind = snow , smile ; noom)do echo %%1
四.
<nul 表示確定的意思,一般用於在屏幕上顯示字符
如 set /p=wind<nul
將在屏幕上顯示wind字符串
注意:這種用法顯示字符串後,光標不會換行
================================================
for嵌套if問題for 使用的參數的時候用if else就失效了
@echo off
for /r d:\batoh %%i in (*.txt) do (
if exist "%%i" (
del /q /s "%%i">nul >nul
echo 已成功刪除
) else (
echo 無此文件,無需刪除
)
)
pause
即使不存在文件後面的else語句失效了
可是這個就行了
@echo off
for %%i in (d:\batoh\) do (
if exist %%i*.txt (
del /q /s "%%i">nul 2>nul
echo OK
) else (
echo NO
)
)
pause
回覆 樓主 風行者 的帖子其實要達到你那個效果,用dir命令加上兩個連接符就可以了
@echo off
dir /s *.txt 1>nul 2>nul&& del /s /q *.txt&&echo 刪除成功||echo 無文本文件
pause>nul
所以今天特地寫了這個貼
1 . 點
與echo連用,作用是換行
示例1 [輸出空行]
echo.
2 > 定向符[輸出]
將命令的輸出進行重定向 [一般用於將結果寫入文件]
注意 nul 爲空設備 >nul 則用於屏蔽輸出內容 [如 pause>nul]
示例2 [向1.txt中寫入字符串 wind]
echo wind>1.txt
3 >> 定向符[輸出]
將命令的輸出進行重定向 [一般用於將結果寫入文件]
注意,定向到文件時,它是在末尾追加 > 則會覆蓋
示例3 [向1.txt中追加寫入字符串 wind]
echo wind>>1.txt
4 < 定向符[輸入]
配合set /p 使用時,從指定的文件中獲取字符串 賦值給變量
示例4 [將1.txt中第1行內容賦值給變量 wind]
set /p wind=<1.txt
5 & 連接符
連接兩個命令
注意 不論前面的命令是否成功執行 後面的命令都將執行
示例5 [依次執行兩個echo 命令]
echo wind& echo snow
6 && 連接符
連接兩個命令
注意 僅當前面的命令成功執行時 後面的命令纔會被執行
示例6 [echo 命令成功執行 type 命令也將被執行]
echo wind&& type 1.txt
示例7 [hello 命令執行失敗 type 命令不會被執行]
hello&& type 1.txt
7 || 連接符
連接兩個命令
注意 僅當前面的命令執行失敗時 後面的命令纔會被執行
示例8 [echo 命令成功執行 type 命令不會被執行]
echo wind|| type 1.txt
示例9 [hello 命令執行失敗 type 命令將被執行]
hello|| type 1.txt
8 | 傳遞符
將前面命令的結果 傳遞給後面的命令使用 [一般用於查找]
示例10 [顯示字符串wind 並 傳遞給find 查找 關鍵字 w]
echo wind| find "w"
2,6,7,8綜合 示例11 [將字符串傳遞給find查找 並 輸出查找結果]
echo wind| find "w">nul&& echo 找到字符w|| echo 未找到字符w
9 ^ 轉義符 [脫字符]
脫去特殊符號的作用 使之成爲一個純粹的符號
示例12 [輸出字符串 &&&&& ]
echo ^&^&^&^&^&
10 @ at
其作用相當於 echo off 不顯示命令本身
不同之處是@僅處理單個命令 echo off則是全局的
示例13 [命令行不會顯示]
@echo wind
11 % 百分號
兩個百分號表示取值
示例14 [顯示變量 wind 的值 smile]
set wind=smile
echo wind的值爲 %wind%
注意,如果要輸出一個百分號 則在批處理中要寫成兩個
12 * 星號
通配作用
示例15 [刪除所有文本文件]
del *.txt
下面幾點要單獨說一下
一。
>nul 或者 1>nul作用是屏蔽成功執行命令的輸出內容
2>nul 作用是屏蔽命令執行失敗的輸出內容
1>nul 2>nul 作用是屏蔽的所有輸出提示 [不論正確與否]
二。
echo時,後面不一定要根空格,可以是其他符號 比如
echo.wind 或者是 echo=wind 或者是 echo;wind 等
三。
for 循環中 一些符號的作用和空格一樣,不會被當作符號輸出 比如
for %%1 in (wind = snow , smile ; noom)do echo %%1
四.
<nul 表示確定的意思,一般用於在屏幕上顯示字符
如 set /p=wind<nul
將在屏幕上顯示wind字符串
注意:這種用法顯示字符串後,光標不會換行
================================================
for嵌套if問題for 使用的參數的時候用if else就失效了
@echo off
for /r d:\batoh %%i in (*.txt) do (
if exist "%%i" (
del /q /s "%%i">nul >nul
echo 已成功刪除
) else (
echo 無此文件,無需刪除
)
)
pause
即使不存在文件後面的else語句失效了
可是這個就行了
@echo off
for %%i in (d:\batoh\) do (
if exist %%i*.txt (
del /q /s "%%i">nul 2>nul
echo OK
) else (
echo NO
)
)
pause
回覆 樓主 風行者 的帖子其實要達到你那個效果,用dir命令加上兩個連接符就可以了
@echo off
dir /s *.txt 1>nul 2>nul&& del /s /q *.txt&&echo 刪除成功||echo 無文本文件
pause>nul
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.