[Batch] bat檔案進行資料備份

本文最後更新於:2024年5月2日 晚上

對於在Windows系統中備份資料的需求
如果可以寫好一個批次檔,並使用工作排程定期複製檔案到指定目錄那就太方便了
以下是使用xcopy指令實現的一個簡易的bat檔教學

教學

一、bat檔案

  1. backup.bat
    @ECHO OFF
    
    @REM 指定語系為UTF-8
    chcp 65001
    
    IF "%1" == "" (
    	SET /P source="請輸入要備份的資料夾絕對路徑:"
    ) ELSE (
    	SET source=%~1
    )
    
    IF NOT EXIST "%source%\" (
    	ECHO 路徑不存在
    	PAUSE
    	EXIT
    )
    
    IF "%2" == "" (
    	SET /P target="請輸入存放備份資料的絕對路徑:"
    ) ELSE (
    	SET target=%~2
    )
    
    IF EXIST "%target%\" (
    	choice /c Yn /m "目標路徑已經存在檔案,是否覆蓋?"
    
    	@REM 錯誤的條件
    	IF ERRORLEVEL 255 GOTO CLOSE
    	@REM 選擇不覆蓋
    	IF ERRORLEVEL 2 GOTO CLOSE
    	@REM 選擇繼續備份
    	IF ERRORLEVEL 1 GOTO CONTINUE
    
    	@REM 取消指令
    	IF ERRORLEVEL 0 GOTO CLOSE
    
    	:CLOSE
    		ECHO 取消備份
    		PAUSE
    		EXIT
    
    	:CONTINUE
    		ECHO 將覆蓋目標路徑檔案
    		PAUSE
    )
    
    xcopy "%source%" "%target%" /s /e /h /i /c /y
    
    ECHO 檔案備份完成
    
    PAUSE
    請注意這個bat檔案的編碼格式要存成UTF-8
    或是存成其他編碼後修改chcp的設定
    才不會發生中文亂碼的問題

二、使用方式

  1. 直接在指令中輸入備份資料夾與目標資料夾

    backup.bat "C:\test\source" "C:\test\target"
  2. 直接左鍵點擊兩下檔案,使用交互式命令列輸入目標資料夾
    image.png

環境

  • Windows 10

參考資料


[Batch] bat檔案進行資料備份
https://hankz1108.github.io/posts/20231107-batch-backup-folder/
作者
Hankz
發布於
2023年11月7日
更新於
2024年5月2日
許可協議