Задаване на стойност от текущата дата на "променлива"
Искам да направя прост .bat файл, който автоматично да се изпълнява при включване на външен USB-диск към лаптоп.
Целта е този .bat файл да извърши архивиране на определени папки от диска на лаптопа към външния диск.
Трябва обаче да се пазат различните версии от архивирането (USB-диска е достатъчно голям).
Затова искам да създам подпапки имената на които зависят от текущата дата.
Например d:\2009-06-05
Но не знам как да стане това създаване на папки чрез команди в .bat файла.
... А за самото копиране възнамерявам да ползвам xcopy
Re:Задаване на стойност от текущата дата на "променлива"
това ли ти трябва?
между другото, не съм гледал новия powershell, но май е "по-човешко" за писане на по-сложна логика ...
Re:Задаване на стойност от текущата дата на "променлива"
Код:
>echo %date%
пет 05.06.2009 г.
Има ли как да "резна" това "пет" отпред ? Без да променям Regional Settings ?
И да обърна подредбата - годината да е отпред, после месеца, после деня (за да е по-прегледно при визуализиране на съдържанието на USB-диска при сортиране по име)
// Видях го как ще стане - SET допуска изрази и операции и ще мога да сглобя нова променлива в нужния ми формат.
() - grouping
! ~ - - unary operators
* / % - arithmetic operators
+ - - arithmetic operators
<< >> - logical shift
& - bitwise and
^ - bitwise exclusive or
| - bitwise or
= *= /= %= += -= - assignment
&= ^= |= <<= >>=
, - expression separator
И в моя случай мога да използвам ~
А има ли променливи които описват текущите Regional Settings ?
Щото при сглобяването на новата променлива, трябва да разчитам на конкретни позиции в %DATE%
Re:Задаване на стойност от текущата дата на "променлива"
нямам никакви спомени вече да ти кажа ... по-добре потърси в google, иначе евентуално можеш да ползваш "date /t" и да парсваш (но там пак е с regional) ^_^
аз затова споменах powershell, щото там се оправяш с нещо от рода на md "$((get-date).toString('yyyyMMdd'))" :)
иначе google показа като резултат следното: http://www.ss64.com/nt/syntax-getdate.html (но имам подозрението, че все пак зависи от езика, заради позициите, които изчисляват)
евентуално може да ползваш някаква врътка от рода на "временно да си сетнеш формат и после да го изчистиш", но нямам идея относно реален пример
Re:Задаване на стойност от текущата дата на "променлива"
Регионалните настройки се пазят в HKEY_CURRENT_USER\Control Panel\International.
Идеята ми е следната:
1. Експортираш текущите настройки.
2. Импортираш каквито ти трябват (дата без наименование на деня).
3. Свършваш си работата.
4. Импортираш предишните текущи настройки.
Може да не е най-елегантното решение, но ще работи.
При мен с тези настройки: http://foruma414.hit.bg/date.JPG
изхода на echo %DATE% e: 05.06.2009
Re:Задаване на стойност от текущата дата на "променлива"
и при мен става такасъздава папка с име текущата дата
Re:Задаване на стойност от текущата дата на "променлива"
Благодаря на всички отзовали се за съветите и идеите.
recycled_bin,
Това което си посочил (http://www.ss64.com/nt/syntax-getdate.html) работи много добре - първо го пробвах с най-различни ръчно зададени настройки в Regional Settings, а после два часа го разглеждах как точно работи. Не че разбрах съвсем-съвсем всичко де, но за себе си се убедих, че трябва да се въведе супер извратен формат за датата, за да стане объркване.
Затова няма и да се опитвам да правя временната промяна на Regional Settings.
Мисля обаче да се ориентирам към Powershell - защото USB-диска ще се ползва и за архивиране на няколко лаптопа при това някои са с по няколко потребителя и с Powershell като че ли ще е по-лесно да се стигне до съответните 'My Documents' и 'Desktop' на съответния потребител - това са предварително определените папки за автоматично архивиране, пък който потлебител иска, да си добавя ръчно каквото иска към текущата архивна папка, след като приключи автоматичната част.
Всъщност обстановката е такава - малка фирма, повечето служители по цели седмици са по различни обекти с лаптопите си (някои са персонални, други са общи и се ползват временно) - та като се появят за малко в офиса и настане лудница, да могат лесно да правят архивиране на един-два USB-диска, които пък стоят в касата - такива са изискванията на големите шефове там.
Re:Задаване на стойност от текущата дата на "променлива"
нещо от рода на SyncToy powertoy (http://www.microsoft.com/downloads/d...DisplayLang=en) няма ли да свърши работа, или offline files, или нещо друго free за синхронизация (ако те разбирам правилно, разбира се) ... но както и да го направиш, важното е да работи :)
успех!
Re:Задаване на стойност от текущата дата на "променлива"
Най-общо синхронизацията като понятие предполага една-единствена работна версия, пък в конкретния случай нещата не са точно такива и шефовете държат на история (в разумно дълъг период).
Та архивиране с продължително съхраняване на междинни копия е идеално за целта.
Още веднъж - много благодаря за ценните съвети.