كيف يمكنني إخراج أيام الأسبوع والشهر في دفعة (ملفات السجل)؟

StackOverflow https://stackoverflow.com/questions/4121202

  •  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)

(*.* هو قناع الملفات للنسخ الاحتياطي)

نصائح أخرى

يمكنك استخدام 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%
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top