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

הסבר על הסקריפט:

  1. תחילה, אנחנו מקבלים את התאריך הנוכחי בפורמט YYYY-MM-DD על ידי פיצול תוצאת הפקודה date /t.
  2. לאחר מכן, אנחנו בודקים אם התיקייה של הגיבוי קיימת כבר, ואם לא – אנחנו יוצרים אותה.
  3. הסקריפט מעתיק את כל הקבצים מתוך תיקיית Documents לתיקיית הגיבוי החדשה, כולל תיקיות משנה (/s /e), ומוודא שהקבצים לא ידרשו אישור נוסף אם הם קיימים כבר בתיקיית היעד (/y).
  4. כל המידע על הגיבוי, כולל התאריך ושעת ההרצה, מתווסף לקובץ backup_log.txt.
  5. בסיום, מוצגת הודעה למשתמש על הצלחת הגיבוי.