PDA

Показать полную графическую версию : [решено] Дата/время создания в имени файла


art.andr
06-04-2012, 16:51
Сделал простенький батник, закинул его в шедулер, все работает
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
например, 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
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
Удалено.

art.andr
09-04-2012, 10:10
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
У меня же стоит win7 x64
Без разницы.
Файл WMIC.exe должен быть в папке \Windows\System32\wbem

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

art.andr
09-04-2012, 11:26
хм, действительно, файл 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
но при вызове из cmd выдает
А путь прописан в системной переменной PATH.
Это в нормальной системе
У вас проблема с переменной PATH, в Windows 7 значение по умолчанию
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShel l\v1.0\
[решено] 'chcp" не является внутренней командой или глюки cmd (http://forum.oszone.net/thread-219637.html)
[решено] Не работают команды в командной строке. (http://forum.oszone.net/thread-129149.html)
[решено] 'ping' is not recognized as an internal or external command... (http://forum.oszone.net/thread-99516.html)

art.andr
09-04-2012, 14:39
так, переменной 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




© OSzone.net 2001-2012