Нахождения и замена существующего файла своим
Пользуюс таким кодом для поиска и замены файлов. Он заменяет мне оригинальный (.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
|
Цитата:
Цитата ufooo
но вопрос о том что этот скрипт сам своего (.exe) файла который лежит рядом с ним тоже перекопирует поверх себя? »
|
Разумеется, поскольку нет никаких проверок. Точнее — он попытается это сделать.
Цитата:
Цитата ufooo
И правильно ли это что такой вариант называется "копирование по маске". »
|
Кто Вам это сказал? Я лично не вижу тут никакой маски.
Явно не хватает кавычек при обоих аргументах команды «copy».
|
iccup.platoon@vk |
04-05-2015 03:10 2503483 |
Копирование по маске - это
Код:
xcopy "D:\otkudato\*.txt" "D:\kudato"
Здесь видно, что копироваться будут только txt файлы, не взирая на их названия. Это есть копирование по маске
Здесь же просто ищется файл, так что это поиск и копирование по файлу.
|
Цитата:
Цитата Iska
Я лично не вижу тут никакой маски »
|
Копирования по маске, я понимаю будет так: (*.exe).
Цитата:
Цитата Iska
Разумеется, поскольку нет никаких проверок »
|
А как зделать проверку чтобы было четко. Какие строки, и где их в моем скрипте добавлять.
|
iccup.platoon@vk |
04-05-2015 03:40 2503487 |
Попробуй так:
Код:
@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
|
Время: 21:29.
© OSzone.net 2001-