Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Дата/время создания в имени файла (http://forum.oszone.net/showthread.php?t=232225)

art.andr 06-04-2012 16:51 1894746

Дата/время создания в имени файла
 
Сделал простенький батник, закинул его в шедулер, все работает
Код:

xcopy "D:\docs\new\1с.dba" "F:\backup" /F /Y
интересует такой вопрос: как в конечной папке бэкапа задать файлу другое имя, например, 1c-dd-mm-yyyy-hh-mm.dba. Знаю что можно переименовать создавшийся файл командой
Код:

rename "F:\backup\1c.dba" "new_name.dba"
но как сделать так, чтобы автоматически туда цеплялась дата. Заранее спасибо

Petya V4sechkin 06-04-2012 17:23 1894756

Цитата:

Цитата art.andr
например, 1c-dd-mm-yyyy-hh-mm.dba

Например:
Код:

For /F "Delims=." %%I In ('WMIC.exe OS Get LocalDateTime ^| Find "."') Do Set DT=%%I
Set FileName=1c-%DT:~6,2%-%DT:~4,2%-%DT:~0,4%-%DT:~8,2%-%DT:~10,2%.dba
Copy /Y "D:\docs\new\1с.dba" "F:\backup\%FileName%"


art.andr 09-04-2012 09:22 1896070

Petya V4sechkin,
после выполнения выдается сообщение:
Код:

C:\Users\user\Desktop>For /F "Delims=." %I In ('WMIC.exe OS Get LocalDateTime | Find "."') Do Set DT=%I
"WMIC.exe" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.


C:\Users\user\Desktop>Set FileName=1c-~6,2DT:~4,2DT:~0,4DT:~8,2DT:~10,2.dba

C:\Users\user\Desktop>Copy /Y "D:\docs\new\1c.dba" "F:\backup\1c-~6,2DT:~4,2DT:
~0,4DT:~8,2DT:~10,2.dba"
Синтаксическая ошибка в имени файла, имени папки или метке тома.
Скопировано файлов:        0.

C:\Users\user\Desktop>pause

Немного покопавшись в дебрях рунета нашел следующее:
Wmic.exe – консольная утилита для вызова объектов и методов WMI (WMI Console) – присутствует только в Windows XP и Windows Server 2003.
У меня же стоит win7 x64

Petya V4sechkin 09-04-2012 09:25 1896072

Удалено.

art.andr 09-04-2012 10:10 1896102

Цитата:

Цитата Petya V4sechkin
For /F "Delims=." %%I In ('WMIC OS Get LocalDateTime ^| Find "."') Do Set DT=%%I Set FileName=1c-%DT:~6,2%-%DT:~4,2%-%DT:~0,4%-%DT:~8,2%-%DT:~10,2%.dba Copy /Y "D:\docs\new\1с.dba" "F:\backup\%FileName%" »

вылетает та же ошибка:
"WMIC.exe" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

по-моему в предложенном Вами втором варианте нет никаких отличий от первого :unsure:

Petya V4sechkin 09-04-2012 10:23 1896110

Цитата:

Цитата art.andr
У меня же стоит win7 x64

Без разницы.
Файл WMIC.exe должен быть в папке \Windows\System32\wbem

А путь прописан в системной переменной PATH.
Это в нормальной системе. По умолчанию.

art.andr 09-04-2012 11:26 1896137

хм, действительно, файл wmic.exe лежит в %systemroot%\system32\wbem
также он находится в %systemroot%\SysWow64\wbem

но при вызове из cmd выдает:
C:\Users\user>wmic.exe /?
"wmic.exe" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

если же явно указать путь через cd c:\windows\system32\wbem и далее прописать wmic /? то все работает

однако, ввожу команду руками:
c:\Windows\System32\wbem>For /F "Delims=." %I In ('WMIC OS Get LocalDateTime ^|
Find "."') Do Set DT=%%I

c:\Windows\System32\wbem>Set DT=%20120409112441

c:\Windows\System32\wbem>set FileName=1c-~6,2DT:~4,2DT:~0,4DT:~8,2DT:~10,2.dba

c:\Windows\System32\wbem>copy /y "D:\docs\new\1c.dba" "F:\backup\%FileName%"
Синтаксическая ошибка в имени файла, имени папки или метке тома.
Скопировано файлов: 0.

Petya V4sechkin 09-04-2012 13:29 1896194

Цитата:

Цитата art.andr
но при вызове из cmd выдает

Цитата:

Цитата Petya V4sechkin
А путь прописан в системной переменной PATH.
Это в нормальной системе

У вас проблема с переменной PATH, в Windows 7 значение по умолчанию
Код:

%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\

art.andr 09-04-2012 14:39 1896271

так, переменной Path нет в данной ветке реестра. Есть переменная PSModulePath значение которой сейчас C:\windows\system32\WindowsPowerShell\v1.0\Modules\ править ее получается?

P.S. разобрался, создал переменную PATH со значением %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShel l\v1.0\
и батник запустился. Спасибо большое Petya V4sechkin


Время: 04:07.

Время: 04:07.
© OSzone.net 2001-