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

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

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

Пользователь


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

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


Пользуюс таким кодом для поиска и замены файлов. Он заменяет мне оригинальный (.exe) файл "крякнутым".
Заменяемый (.exe) файл должен находится рядом с "батником". Как я понимаю нижеуказанный скрипт ищет конкретный (.exe) файл по всем дискам компа, и если нашел то забирает тот (.exe) файл который находится рядом с ним, и копирует и заменяет ево туда где только что вел успешный поиск. Скрипт работаеи, но вопрос о том что этот скрипт сам своего (.exe) файла который лежит рядом с ним тоже перекопирует поверх себя? И правильно ли это что такой вариант называется "копирование по маске".
Код: Выделить весь код
@echo off
set direct="%~dp0"
for %%z in (c d e f g h i j k l m n o p q r s t u v w x y z) do (
  for /f "delims=*" %%H in ('dir /s /b /a-d "%%z:\skyrim.exe" ^|Findstr /bev /c:%direct%skyrim.exe') do call :1 "%%~sH"
)
goto:eof
:1
echo %1
copy /y %direct%skyrim.exe %1

Отправлено: 02:02, 04-05-2015

 

Ветеран


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

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


Цитата ufooo:
но вопрос о том что этот скрипт сам своего (.exe) файла который лежит рядом с ним тоже перекопирует поверх себя? »
Разумеется, поскольку нет никаких проверок. Точнее — он попытается это сделать.

Цитата ufooo:
И правильно ли это что такой вариант называется "копирование по маске". »
Кто Вам это сказал? Я лично не вижу тут никакой маски.

Явно не хватает кавычек при обоих аргументах команды «copy».

Отправлено: 02:45, 04-05-2015 | #2



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

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


Аватара для iccup.platoon@vk

Пользователь


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

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


Копирование по маске - это
Код: Выделить весь код
xcopy "D:\otkudato\*.txt" "D:\kudato"
Здесь видно, что копироваться будут только txt файлы, не взирая на их названия. Это есть копирование по маске
Здесь же просто ищется файл, так что это поиск и копирование по файлу.

-------
Да, я дотошный. Да, я всегда уточняю цели. Зато выполняю задание на совесть.


Отправлено: 03:10, 04-05-2015 | #3


Пользователь


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

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


Цитата Iska:
Я лично не вижу тут никакой маски »
Копирования по маске, я понимаю будет так: (*.exe).
Цитата Iska:
Разумеется, поскольку нет никаких проверок »
А как зделать проверку чтобы было четко. Какие строки, и где их в моем скрипте добавлять.

Отправлено: 03:24, 04-05-2015 | #4


Аватара для iccup.platoon@vk

Пользователь


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

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


Попробуй так:
Код: Выделить весь код
@echo off
set direct="%~dp0"
for %%z in (c d e f g h i j k l m n o p q r s t u v w x y z) do (
  for /f "delims=*" %%H in ('dir /s /b /a-d "%%z:\skyrim.exe" ^|Findstr /bev /c:%direct%skyrim.exe') do call :1 "%%~sH"
)
goto:eof
:1
echo %1
attrib +r %direct%skyrim.exe
xcopy /q /c /y %direct%skyrim.exe %1
attrib -r %direct%skyrim.exe
А вот в этом не уверен, сделал проверку на "if"
Код: Выделить весь код
@echo off
set direct="%~dp0"
for %%z in (c d e f g h i j k l m n o p q r s t u v w x y z) do (
  for /f "delims=*" %%H in ('dir /s /b /a-d "%%z:\skyrim.exe" ^|Findstr /bev /c:%direct%skyrim.exe') do call :1 "%%~sH"
)
goto:eof
:1
echo %1
if /I not "%1" xcopy /q /c /y %direct%skyrim.exe %1
xcopy /q /c /y %direct%skyrim.exe %1

-------
Да, я дотошный. Да, я всегда уточняю цели. Зато выполняю задание на совесть.


Последний раз редактировалось iccup.platoon@vk, 04-05-2015 в 03:46.

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

Отправлено: 03:40, 04-05-2015 | #5



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Тема на удаления nighttrap Лечение систем от вредоносных программ 2 14-11-2014 12:33
CMD/BAT - Тема на удаления nighttrap Скриптовые языки администрирования Windows 5 14-11-2014 07:10
CMD/BAT - Проверка времени нахождения файла с расширением .eml в папке kotlyar Скриптовые языки администрирования Windows 31 09-09-2014 12:35
Замена прав файла и владельца при перемещении файла в другой каталог. W2K3R2 GreenIce Microsoft Windows NT/2000/2003 18 30-10-2011 18:16
CMD/BAT - [решено] Замена файла boot.ini с помощью bat файла Chekis9100a Скриптовые языки администрирования Windows 3 24-11-2010 08:17




 
Переход