【Cmd】批处理
小續
看了下時間,10年寫的了
批處理是個很強大的東西,現在任何一個工具都包含這個功能,只是被工具給封閉起來了
懷念下dos時代的批處理啊
rem即高級語言中的注釋的意思,能看懂每個程序的作用了吧
?
@echo off
rem …………………call命令的應用
type a.txt
call c.bat
echo 現在調用xx后面的
call :xx
dir a.txt
:xx
echo dir a.txt沒有執行
?
?
@echo off
rem …………………start命令的應用
start "a.txt" /wait dir a.txt
echo 已經從新命令窗口返回
?
echo 下面的注釋沒有顯示出來
rem …………………注釋命令的應用@echo off
rem 這個是注釋命令
start "a.txt" /wait dir a.txt
?
@echo off
rem ?…………………shift命令的應用@echo off
:round
if "%1"=="" goto end
echo %1內容如下:
type %1
echo.
shift
goto round
:end
rem shift命令 ? 設置批處理從第N個參數開始移位,N的值是0至8
rem 符號%0至%9專用于批處理從命令行獲得的參數,一次代表命令行輸入的相應參數,即輸入的參數
rem 輸入后面要帶上相應的a.txt或者更多………………
?
set /a sum=0
rem ?…………………for命令的應用@echo off
rem set設置成可求值的數字表達式的時候用/a
for %%x in (*.txt) do (
echo %%x文件的內容如下:
type %%x
echo.
set /a sum=sum+1
)
echo 一共顯示了%sum%個文件
rem ?解析for %%x in (*.txt) ? 對于當前目錄下所有以.txt結尾的文件
?
@echo off
rem ?…………………通配符*和?的應用
rem *代表任意多個(包括0個字符),?代表任意單個字符
if exist *.txt echo 當前文件夾下有文件!
echo 以p開頭的目錄如下:
dir /d /w /b p*
echo.
echo 以dk開頭的、第三個字符為任意字符、第四個字符為t、擴展名為三個字符且以do開頭的文件如下:
dir /b /w dk?t.do?
?
@echo off
rem………………… 重定向符<、>、>>的應用
rem 控制數據的輸入輸出方式,>會替換目地數據,而>>符號只是將數據源添加到目標數據后
echo 正在自動創建的批處理…………………
echo echo 進入auto.bat批處理文件中…………………
echo type a.txt > auto.bat
echo dir /b /w >> auto.bat
echo 被自動創建的auto.bat文件的內容如下:
type auto.bat
echo.
echo 排序后的auto.bat為:
sort < auto.bat
?
@echo off
rem …………………管道符|的應用
rem 他將一個命令的輸出數據提取出來,然后將提取出來的數據作為另一個命令的輸入
find "requirements" a.txt | sort >result.txt
echo 對包含"requirements"單詞的行排序后如下:
type result.txt
rem ?批處理首先在a.txt文件中找出所有包含requirements的行,接著將找出的結果通過|傳給rem ?sort命令進行排序,最后將排序結果保存到result文件
?
批處理改名代碼
@echo off & setlocal EnableDelayedExpansion
title 文件批量重命名整理
mode con cols=60lines=10 & color 9b&set list=%random%
echo.&echo.
echo 此批處理腳本用于將此路徑下的所有同類文件批量重命名
echo.
set /p start=開始整理文件請輸入[Y]:
if not "%start%"=="y" if not "%start%"=="Y" exit
echo.
set /p bak=請輸入要整理的文件名后綴[如jpg]:
echo.
set /p name=請輸入更改后的文件名稱(直接回車則按從01開始的有序數字命名):
for /f "delims=" %%i in ('dir /b *.!bak!') do (
set /a num+=1
if not "%%~nxi"=="%~nx0" (
if !num! LSS 10 (ren "%%~nxi" !name!0!num!.!bak!&echo %%~xni 已重命名為: !name!0!num!.!bak! >>%temp%\%list%) else ren "%%~nxi" !name!!num!.!bak!&echo %%~xni 已重命名為: !name!!num!.!bak! >>%temp%\%list%
)else set /a num-=1
)
set /a no=!num!+2
mode con cols=60lines=!no!&color 5a
echo !num!個文件已經完成重命名,分別為:
type %temp%\%list%
set /p type=要導出該清單列表請輸入[Y],否則直接回車鍵退出。
if not "%type%"=="y" if not "%type%"=="Y" exit
copy %temp%\%list% 重命名列表清單.txt&del /q %temp%\%list%&exit
?
?
?
本文出自 “成鵬致遠” 博客,請務必保留此出處http://infohacker.blog.51cto.com/6751239/1171510
總結
- 上一篇: 苹果账号怎么退出
- 下一篇: 快速排序算法的简短描述