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

Ответить
Аватара пользователя
ufooo

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

Сообщение ufooo »

Пользуюс таким кодом для поиска и замены файлов. Он заменяет мне оригинальный (.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
Аватара пользователя
Iska

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

Сообщение Iska »

Цитата ufooo:



но вопрос о том что этот скрипт сам своего (.exe) файла который лежит рядом с ним тоже перекопирует поверх себя?
CMD/BAT - [решено] Нахождения и замена существующего файла своим




Разумеется, поскольку нет никаких проверок. Точнее — он попытается это сделать.




Цитата ufooo:



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




Кто Вам это сказал? Я лично не вижу тут никакой маски.



Явно не хватает кавычек при обоих аргументах команды «copy».
Аватара пользователя
iccup.platoon@vk

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

Сообщение iccup.platoon@vk »

Копирование по маске - это



Код:

Код: Выделить всё

xcopy "D:\otkudato\*.txt" "D:\kudato"

Здесь видно, что копироваться будут только txt файлы, не взирая на их названия. Это есть копирование по маске

Здесь же просто ищется файл, так что это поиск и копирование по файлу.
Аватара пользователя
ufooo

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

Сообщение ufooo »

Цитата Iska:



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




Копирования по маске, я понимаю будет так: (*.exe).


Цитата Iska:



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




А как зделать проверку чтобы было четко. Какие строки, и где их в моем скрипте добавлять.
Аватара пользователя
iccup.platoon@vk

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

Сообщение iccup.platoon@vk »

Попробуй так:



Код:

Код: Выделить всё

@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
Ответить

Вернуться в «Скриптовые языки администрирования Windows»