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

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

Ответить
Настройки темы
CMD/BAT - Условие изменения файла

Аватара для Sisin

Старожил


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

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


Подскажите, пожалуйста, как с помощью bat скопировать файл при двух условиях:
1. если он есть (т.е. подключен внешний накопитель)
2. если файл изменен (дата изменения копируемого файла больше, чем дата файла, на место которого производится копирование)

Код: Выделить весь код
@echo OFF

if exist "G:\11\12.pdf" copy "G:\11\12.pdf" "C:\" /y

pause

Отправлено: 00:47, 30-08-2019

 

Ветеран


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

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


Sisin, давайте начнём с другого — как планируется определять искомый накопитель, в данном случае, проще говоря — как планируется определять букву искомого раздела?

Отправлено: 02:34, 30-08-2019 | #2



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

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


Аватара для YuS_2

Crazy


Contributor


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

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


Цитата Iska:
как планируется определять искомый накопитель »
Предполагаю, что тут всё проще... т.е. по запуску пакетника определяется наличие файла, независимо от наличия носителя.

А вот с работа датами в cmd, как известно, задача часто нетривиальная, поэтому проще организовать это через powershell:
Цитата Sisin:
как с помощью bat скопировать файл при двух условиях »
раз уж потребовался именно батник, то:
Код: Выделить весь код
@echo off
set "src=G:\11\12.pdf"
set "dst=C:\12.pdf"
powershell -c "&{if((gi '%src%').lastaccesstime -gt (gi '%dst%').lastaccesstime){cp '%src%' '%dst%' -force}}"

-------
scio me nihil scire. Ѫ

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

Отправлено: 08:42, 30-08-2019 | #3


Аватара для Sisin

Старожил


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

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


Цитата Iska:
Sisin, давайте начнём с другого — как планируется определять искомый накопитель, в данном случае, проще говоря — как планируется определять букву искомого раздела? »
Он всегда G:

Цитата YuS_2:
раз уж потребовался именно батник, то: »
Спасибо) Но хотелось бы без powershell.
Хочу понять для себя, т.к. не нашел ответа.

Отправлено: 10:15, 30-08-2019 | #4


Ветеран


Contributor


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

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


Sisin, xcopy /d решает Вашу задачу даже без батника, при условии, что пути заведомо известны и не надо определять букву носителя.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Отправлено: 10:41, 30-08-2019 | #5


Аватара для Sisin

Старожил


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

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


Цитата megaloman:
xcopy /d решает Вашу задачу даже без батника, при условии, что пути заведомо известны и не надо определять букву носителя. »
Но в xcopy /d надо указывать дату, а как мне сравнить даты?? Мне же надо скопировать, если дата больше.

Отправлено: 11:57, 30-08-2019 | #6


Ветеран


Contributor


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

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


Sisin, голубчик, да Вы, как я погляжу, тоже верхогляд, как и я. . Читать хелп надо внимательно
Цитата XCopy /?:
/D:m-d-y Копирование файлов, измененных не ранее указанной даты.
Если дата не указана, заменяются только конечные файлы,
более старые, чем исходные.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 30-08-2019 в 12:18.

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

Отправлено: 12:05, 30-08-2019 | #7


Ветеран


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

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


Цитата Sisin:
Он всегда G: »
Сегодня мы все G:. Это сегодня он G:. А завтра может быть и не G:, на то он и съёмный.
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:16, 30-08-2019 | #8


Ветеран


Contributor


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

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


Цитата Iska:
А завтра может быть и не G:, на то он и съёмный. »
И, самое плохое, не понятно: это флэшка или внешний винт. Однако, если размещение исходного и обновляемого файлов не совпадают, то:
Код: Выделить весь код
@Echo Off
	Set "From=11\12.pdf"
	Set "To=C:"
	FOR /F "usebackq tokens=1 skip=1 delims=:" %%d IN (`"wmic logicaldisk get caption | FINDSTR /R /C:"[A-Z]""`) DO (
		If Exist "%%d:\%From%" >nul xcopy /Y /D "%%d:\%From%" "%To%\"
	)
Exit /B

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Отправлено: 16:47, 30-08-2019 | #9


Аватара для DJ Mogarych

fascinating rhythm


Moderator


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

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


if exist, а дальше robocopy.

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Отправлено: 20:53, 30-08-2019 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBS/WSH/JS - Дата и время изменения файла lorents Скриптовые языки администрирования Windows 19 01-02-2015 19:28
CMD/BAT - [решено] Дата изменения файла Sat_Kelman Скриптовые языки администрирования Windows 1 19-04-2011 11:03
.NET - [решено] Скачивание файла, где часть URL это дата посл. изменения лок. файла Efsey Программирование и базы данных 9 23-08-2010 19:48
CMD/BAT - [решено] Не выполняет одно условие удаления файла VoodooHaker Скриптовые языки администрирования Windows 7 14-02-2009 17:49
Условие кодировки. Редактирование файла из cmd. Mss Автоматическая установка Windows 2000/XP/2003 4 19-05-2005 23:25




 
Переход