كيف يمكنني إخراج أيام الأسبوع والشهر في دفعة (ملفات السجل)؟
-
29-09-2019 - |
سؤال
أحاول إعداد 7zip للنسخ الاحتياطية الآلية ، لكنني أواجه مشكلة في أسماء ملفات الإخراج.
حاولت استخدام أمر ٪ Date ٪ ولكنه جعل دليلان داخل النسخ الاحتياطي.
C: Users Desktop Sun 11 07 2010.7Z
كيف يمكنني جعلها مجرد تسجيل اليوم والشهر؟
C: Users Desktop Sun 11-07-2010.7Z
المحلول
محاولة
7z a %DATE:~-4%-%DATE:~4,2%-%DATE:~7,2%.7z *.* for (YYYY-MM-DD)
أو
7z a %DATE:~7,2%-%DATE:~4,2%-%DATE:~-4%.7z *.* for (DD-MM-YYYY)
(*.* هو قناع الملفات للنسخ الاحتياطي)
نصائح أخرى
هل تستخدم ملف الخفافيش؟ انظر هنا http://www.tech-recipes.com/rx/956/windows-batch-file-bat-to-get-current-date-in-mmddyyy-format/
يمكنك استخدام WMI للحصول على تفاصيل التاريخ بتنسيق محدد. المشكلة في الإخراج من date
(و ال %date%
متغير البيئة) هو أنه محدد للغاية.
إذا قمت بتنفيذ:
wmic path win32_localtime get day^,month^,year^ /format:csv
سترى الإخراج الذي تحتاجه لمعالجته.
السيناريو التالي سيحصل عليك yyyy-mm-dd
التنسيق الذي تحتاجه (باستخدام يوم الأسبوع لأن مفتاح الفرز الأساسي ليس فكرة جيدة):
@echo off
for /f "skip=2, tokens=2-4" delims=," %%a in ('wmic path win32_localtime get day^,month^,year^ /format:csv') do (
set /a ymd = 10000 * %%c + 100 * %%b + %%a
)
set ymd=%ymd:~0,4%-%ymd:~4,2%%ymd:~6,2%
echo %ymd%