CMD/BAT - [решено] Дата/время создания в имени файла

Ответить
Аватара пользователя
art.andr

CMD/BAT - [решено] Дата/время создания в имени файла

Сообщение art.andr »

Сделал простенький батник, закинул его в шедулер, все работает



Код:

Код: Выделить всё

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

Re: CMD/BAT - [решено] Дата/время создания в имени файла

Сообщение Petya V4sechkin »

Цитата 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

Re: CMD/BAT - [решено] Дата/время создания в имени файла

Сообщение art.andr »

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
Аватара пользователя
art.andr

Re: CMD/BAT - [решено] Дата/время создания в имени файла

Сообщение art.andr »

Цитата 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%"
CMD/BAT - [решено] Дата/время создания в имени файла




вылетает та же ошибка:

"WMIC.exe" не является внутренней или внешней

командой, исполняемой программой или пакетным файлом.



по-моему в предложенном Вами втором варианте нет никаких отличий от первого Изображение
Аватара пользователя
Petya V4sechkin

Re: CMD/BAT - [решено] Дата/время создания в имени файла

Сообщение Petya V4sechkin »

Цитата art.andr:



У меня же стоит win7 x64



Без разницы.

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



А путь прописан в системной переменной PATH.

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

Re: CMD/BAT - [решено] Дата/время создания в имени файла

Сообщение art.andr »

хм, действительно, файл 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

Re: CMD/BAT - [решено] Дата/время создания в имени файла

Сообщение Petya V4sechkin »

Цитата art.andr:



но при вызове из cmd выдает




Цитата Petya V4sechkin:



А путь прописан в системной переменной PATH.

Это в нормальной системе



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



Код:

Код: Выделить всё

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

CMD/BAT - [решено] 'chcp" не является внутренней командой или глюки cmd
Разное - [решено] Не работают команды в командной строке.
Ошибка - [решено] 'ping' is not recognized as an internal or external command...
Аватара пользователя
art.andr

Re: CMD/BAT - [решено] Дата/время создания в имени файла

Сообщение art.andr »

так, переменной 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
Ответить

Вернуться в «Скриптовые языки администрирования Windows»