1.6 פרויקט פתרון
@echo off
setlocal enabledelayedexpansion
:: קבלת תאריך נוכחי בפורמט YYYY-MM-DD
for /f "tokens=1-3 delims=/ " %%a in ('date /t') do (
set day=%%a
set month=%%b
set year=%%c
)
set date=%year%-%month%-%day%
:: יצירת תיקיית גיבוי אם אינה קיימת
set backup_dir=C:\Backup\Backup_%date%
if not exist "%backup_dir%" mkdir "%backup_dir%"
:: ביצוע גיבוי הקבצים
xcopy "C:\Users\<שם משתמש>\Documents\*" "%backup_dir%\" /s /e /y > "%backup_dir%\backup_log.txt"
:: הוספת תאריך ושעת הגיבוי לקובץ הלוג
echo Backup completed on %date% at %time% >> "%backup_dir%\backup_log.txt"
:: הצגת הודעה למשתמש
echo Backup was successful! Files are saved in "%backup_dir%" and logged in backup_log.txt.
pause
הסבר על הסקריפט:
- תחילה, אנחנו מקבלים את התאריך הנוכחי בפורמט
YYYY-MM-DDעל ידי פיצול תוצאת הפקודהdate /t. - לאחר מכן, אנחנו בודקים אם התיקייה של הגיבוי קיימת כבר, ואם לא – אנחנו יוצרים אותה.
- הסקריפט מעתיק את כל הקבצים מתוך תיקיית
Documentsלתיקיית הגיבוי החדשה, כולל תיקיות משנה (/s /e), ומוודא שהקבצים לא ידרשו אישור נוסף אם הם קיימים כבר בתיקיית היעד (/y). - כל המידע על הגיבוי, כולל התאריך ושעת ההרצה, מתווסף לקובץ
backup_log.txt. - בסיום, מוצגת הודעה למשתמש על הצלחת הגיבוי.