BAT檔簡單功能

刪除圖檔.bat

之前把伺服器的資料全部抓下來,但是會有很多多餘的檔案,導致搜尋時需要花很多時間,所以寫了這個檔案將不必要的附檔名的資料都刪除掉。

::%cd% => 當前目錄

::/S 遞迴子目錄
::Del 刪除檔案
Del %cd%\新資料夾\*.20* /S 
Del %cd%\資料夾\*.jpg /S 
Del %cd%\資料夾\*.gif /S 
Del %cd%\資料夾\*.png /S 
Del %cd%\資料夾\*.log /S 
Del %cd%\資料夾\*.txt /S 
Del %cd%\資料夾\*.xls /S 
Del %cd%\資料夾\*.pdf /S 
Del %cd%\資料夾\*.doc /S 
Del %cd%\資料夾\*.ttf /S 
Del %cd%\資料夾\*.zip /S 
Del %cd%\資料夾\*.rar /S 
Del %cd%\資料夾\*.7z  /S 
Del %cd%\資料夾\*.swp /S 
Del %cd%\資料夾\*.ppj /S 
Del %cd%\資料夾\*.tdo /S 
Del %cd%\資料夾\*.dsk /S

備份文件並且加上日期.bat

可以將資料夾底下的指定檔案加上當天日期的功能,範例:test.php執行後更名test.php20200619。

::%cd% => 當前的路徑

::xcopy => 複製檔案

::/S => 遞迴資料夾
SET yy=%date:~0,4%
SET mm=%date:~5,2%
SET dd=%date:~8,2%
xcopy %cd%\新資料夾\*.php  %cd%\bak\*.php%yy%%mm%%dd%  /S
xcopy %cd%\新資料夾\*.js   %cd%\bak\*.js%yy%%mm%%dd%   /S
xcopy %cd%\新資料夾\*.css  %cd%\bak\*.css%yy%%mm%%dd%  /S
xcopy %cd%\新資料夾\*.html %cd%\bak\*.html%yy%%mm%%dd% /S
xcopy %cd%\新資料夾\*.htm  %cd%\bak\*.htm%yy%%mm%%dd%  /S

匯出資料夾檔名.bat

將這隻檔案底下所有的檔案名稱(包含副檔名)匯出到list.txt這個檔案內,當初是因為每次更新檔案要寫文件的時候,都要把所有要更新的檔案列上去,因為覺得一個一個複製太麻煩所以去google找到的功能。

@echo off
dir /b /on >list.txt

修改副檔名.bat

簡單的把附檔名修正的批次檔,原因是因為我在整理音樂資料夾的時候覺得檔名不一致,心裡覺得不舒服,所以跑去寫了這支檔案讓格式統一。

::ren 重新命名
@echo off
ren *.Mp3  *.mp3
ren *.MP3  *.mp3
ren *.M4a  *.m4a
ren *.M4A  *.m4a
ren *.WMA  *.wma
ren *.Wma  *.wma
ren *.WMa  *.wma
ren *.WmA  *.wma
ren *.wMA  *.wma
ren *.wmA  *.wma

迴圈範例.bat

參考別隻程式,寫了下面這隻程式測試迴圈效果,順便記錄下來。

set count
:Start 
set /a count = count+1
echo.  
echo count = %count%
echo.  
echo count = %count%
if %count% == 1000 goto End
goto Start 
: End
pause

啟動Homestead.bat

啟動laravel的Homestead語法,減少每次啟動都要打字的時間。

cd C:\Homestead
vagrant up

關閉Homestead.bat

啟動laravel的Homestead語法,減少每次關閉都要打字的時間。

cd C:\Homestead
vagrant halt

重新讀取設定Homestead.bat

homestead.yaml檔案修改後需要重新讀取,因為不希望每次打語法,所以做成檔案。

cd C:\Homestead
vagrant reload --provision

將資料夾內的檔案複製到這層.bat

抓取目前資料夾內的資料夾,複製裡面的檔案到目前資料夾這層。

::pause 暫停
::FOR /D %%d IN (*) DO () 取得所有資料夾
:: %cd% 目前的資料夾
:: DEL
::  /F:強制刪除
::  /A:選擇檔案的屬性
::  /Q:安靜模式,不會跳出提示訊息就刪除
::  /S:連帶刪除子目錄下的檔案
::RD 
::  /Q:安靜模式,不會跳出 提示訊息就刪除
::  /S:連帶刪除子目錄下的檔案


pause
FOR /D %%d IN (*) DO (
    xcopy %cd%\"%%d"\*.*  *.* /y
    DEL %cd%\"%%d"\ /F /A /Q
    RD %cd%\"%%d"\ /S /Q
)
pause

異動副檔名.bat

::ren 重新命名
@echo off
ren *.webp  *.jpg