powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Windows [игнор отключен] [закрыт для гостей] / Копировать файл в командной строке, генерируя ему новое имя
6 сообщений из 6, страница 1 из 1
Копировать файл в командной строке, генерируя ему новое имя
    #36939671
JohnSparrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день

Нужно по команде из bat-файла (из командной строки, никакого GUI) копировать определенный файл в определенный каталог. Т.к. исходный файл один и тот же, то при копировании ему должно генерироваться новое имя в каталоге приемнике (например, на основе системных даты/времени). Это можно как-то реализовать?

ОС - Windows 2000 Professional, управляет устройством, на которое крайне нежелательно ставить дополнительное ПО. Пытался написать консольную утилиту на С++ в MSVC 6.0, но не выходит - слишком давно писал на нем. Может, кто-то знает готовую утилиту или другой решения вопроса?

Есть вариант использовать WinRAR, он из консоли неплохо упаковывает и сохраняет с названием, соответствующим дате/времени (т.е. генерирует уникальное название, что и требуется), однако он на этом компе не установлен, да и мне нужно будет в архивных копиях искать строки (исходный файл - текстовый), а их rar-формат будет мешать.
...
Рейтинг: 0 / 0
Копировать файл в командной строке, генерируя ему новое имя
    #36939673
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JohnSparrow,

почитайте в справке Windows про %date%
...
Рейтинг: 0 / 0
Копировать файл в командной строке, генерируя ему новое имя
    #36939739
JohnSparrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, прочитал, работает.
А можно как-то в имени файла использовать куски из %time%? Дело в том, что если генерить имя архивной копии по %date%, то второй запуск команды в те же сутки приведет к затиранию первой архивной копии.
...
Рейтинг: 0 / 0
Копировать файл в командной строке, генерируя ему новое имя
    #36939742
JohnSparrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все, получилось. Есть магическое слово %random%, которое совместно с %data% позволит сгенерировать уникальное на сегодня имя файла. Т.к. архивация будет выполняться не чаще двух-трех раз в день, выпадение одного и того же случайного числа не произойдет.

Спасибо, в общем, за наводку.
...
Рейтинг: 0 / 0
Копировать файл в командной строке, генерируя ему новое имя
    #36939743
Alien99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JohnSparrow,

Точно также как и с date используя ключ /t
...
Рейтинг: 0 / 0
Копировать файл в командной строке, генерируя ему новое имя
    #36939801
Константин Цветков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JohnSparrow
А можно как-то в имени файла использовать куски из %time%? Дело в том, что если генерить имя архивной копии по %date%, то второй запуск команды в те же сутки приведет к затиранию первой архивной копии.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
@echo off
osql -S S1C -E -Q "BACKUP DATABASE [filit] TO DISK = 'G:\MSSQL\filit.bak' WITH INIT, NOUNLOAD, NAME = 'FILIT arch', NOSKIP, NOFORMAT"
SET Now=%Time: =0%
SET Hs=%Now:~0,2%
SET Ms=%Now:~3,2%
Rar m filit.%date:~6,4%.%date:~3,2%.%date:~0,2%.%Hs%-%Ms%.rar filit.bak
xcopy *.rar \\ARCH\Volume_1\B1C\ /D /Y /C
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Windows [игнор отключен] [закрыт для гостей] / Копировать файл в командной строке, генерируя ему новое имя
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]