Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Команда копирования файла с указанием времени копирования

Ответить
Настройки темы
CMD/BAT - [решено] Команда копирования файла с указанием времени копирования

Аватара для Pozia

Ветеран


Сообщения: 2756
Благодарности: 211

Профиль | Отправить PM | Цитировать


Как указать команду копирования файла чтобы в итоге имя получилось из заданного мною имени и даты и времени копирования?

-------
Жизни вглядись в глаза: Это то, что ты всегда искал? Это то, что ты всегда хотел? Да или нет?


Отправлено: 21:12, 13-10-2010

 

Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Что-то наподобие такого?
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

set sSourceFile=%~1

if not defined sSourceFile  goto :eof
if not exist "%sSourceFile%" goto :eof

set sDestPath=%~2
if not defined sDestPath     goto :eof
if not exist "%sDestPath%\." goto :eof

for /f "tokens=1-3 delims=. " %%i in  ('date /t') do set sDate=%%k%%j%%i
for /f "tokens=1-3 delims=: " %%i in  ('time /t') do set sTime=%%k%%j%%i

copy "%sSourceFile%" "%sDestPath%\%~n1_%sDate%_%sTime%%~x1"

endlocal
exit /b 0
Первый параметр — исходный файл. Второй параметр — путь назначения. «date /t»/«time /t», помнится, работают, начиная с XP (???); кроме того, разбор зависит от региональных параметров (впрочем, здесь этот вопрос неоднократно разбирался — как «вытащить» эти данные из реестра и применить в разборе; кроме того, можно пользовать разбор «wmic.exe path win32_localtime get»).

Отправлено: 21:51, 13-10-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Pozia

Ветеран


Сообщения: 2756
Благодарности: 211

Профиль | Отправить PM | Цитировать


Iska, много так всего мне непонятного. Можно как то проще с явным примером копирования файла 1.txt с диска с на d?

-------
Жизни вглядись в глаза: Это то, что ты всегда искал? Это то, что ты всегда хотел? Да или нет?


Отправлено: 22:08, 13-10-2010 | #3


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Для вышеприведённого пакетного файла вызов может быть такой:
Код: Выделить весь код
modcopy.cmd "c:\My path\1.txt" "d:\"
Если текущим каталогом при вызове пакетного файла будет каталог с файлом «1.txt» — вызов можно сократить, например, до:
Код: Выделить весь код
modcopy.cmd 1.txt "d:\"
«…явный пример…»

Плюём на параметры и проверки, данные пишем прямо в коде:
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

set sSourceFile=c:\My path\1.txt
set sDestPath=d:\

for /f "tokens=1-3 delims=. " %%i in  ('date /t') do set sDate=%%k%%j%%i
for /f "tokens=1-3 delims=: " %%i in  ('time /t') do set sTime=%%k%%j%%i
for %%i in ("%sSourceFile%") do copy "%sSourceFile%" "%sDestPath%\%%~ni_%sDate%_%sTime%%%~xi"

endlocal
exit /b 0

Отправлено: 22:41, 13-10-2010 | #4


Аватара для Pozia

Ветеран


Сообщения: 2756
Благодарности: 211

Профиль | Отправить PM | Цитировать


Iska, а если в тот первый батник засунуть команду копирования чтобы в одном батнике делать копирование? Как? И попроще без всего лишнего

-------
Жизни вглядись в глаза: Это то, что ты всегда искал? Это то, что ты всегда хотел? Да или нет?


Отправлено: 22:55, 13-10-2010 | #5


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
copy "DIR1\file.txt" "DIR2\file_%DATE%_%TIME:~,2%%TIME:~3,2%%TIME:~6,2%.txt"
Код: Выделить весь код
for /f "delims=+-" %%i In ('WMIC OS Get LocalDateTime^|find "."') do set DT=%%i
copy "DIR1\file.txt" "DIR2\file_%DT%.txt"
1-й вариант самый быстрый/короткий, но его реализация зависит от формата отображения даты/времени в региональных настройках, 2-й вариант свободен от привязки к локали, но WMIC работает медленно и для каждого файла его вызывать нежелательно

Последний раз редактировалось amel27, 14-10-2010 в 02:43.

Это сообщение посчитали полезным следующие участники:

Отправлено: 01:25, 14-10-2010 | #6


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата amel27:
…WMIC OS Get LocalDateTime… »
Записал на память. Иногда требуется, чтобы буквально ткнули носом, дабы узреть очевидное . Фактически готовый формат, и именно в том виде, который требуется (для правильной сортировки создаваемых файлов). Самое интересное, что я и в VBScript, так же, «ручками» «клеил» строку формата из частей.

Отправлено: 04:27, 16-10-2010 | #7



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Команда копирования файла с указанием времени копирования

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Скрипт копирования файла с парка компьтеров. exo Скриптовые языки администрирования Windows 4 14-09-2009 15:24
Проблема копирования файла addremov.chm после интеграции SP2 -Fred- Автоматическая установка Windows 2000/XP/2003 3 20-02-2007 16:25
(solved) команда для копирования файлов / каталогов e9990638 Автоматическая установка Windows 2000/XP/2003 5 21-11-2006 14:52
[решено] Способ копирования защиненного файла (Когда - File sharing violation) RVGroup Microsoft Windows 2000/XP 3 25-10-2006 11:21
Win98SE Установка 99%. Ошибка копирования файла Setup.txt yurfed Microsoft Windows 95/98/Me (архив) 11 07-07-2006 11:53




 
Переход