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

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

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

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


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

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


Уважаемые знатоки!
Помогите решить задачу:
Нужен bat файл со следующими условиями- найти на всех дисках файл "dacha.exe" и заменить их на аналогичный из запускаемой папки.
Спасибо!

Отправлено: 21:13, 02-02-2013

 

Аватара для zion87

Старожил


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

Профиль | Отправить 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:\dacha.exe" ^|Findstr /bev /c:%direct%dacha.exe') do call :1 "%%~dpH"
)
goto:eof
:1
copy /y %direct%dacha.exe %1
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:50, 02-02-2013 | #2



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

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


Ветеран


Contributor


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

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


Еще вариант
Код: Выделить весь код
@Echo Off

Set NameFile=dacha.exe
Set From="%~dp0%NameFile%"

for %%d 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 If Exist %%d:\*.* (
	FOR /F "usebackq delims=" %%f IN (`dir /s /b /a-d "%%d:\%NameFile%" 2^>nul`) DO (
		    Echo %%f		
		    Copy %From% "%%f" >nul
	)
)

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

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

Отправлено: 22:35, 02-02-2013 | #3

4zz 4zz вне форума Автор темы

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


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

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


СпасибО!

Отправлено: 22:48, 02-02-2013 | #4

4zz 4zz вне форума Автор темы

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


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

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


А как будет если заменить на daSha.exe ? из этой же директории

Отправлено: 00:38, 03-02-2013 | #5


Аватара для zion87

Старожил


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

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


надо заменить daSha.exe в той же директории где мы нашли файл dacha.exe?

если да то изменяем строку
Код: Выделить весь код
copy /y %direct%dacha.exe %1
на
Код: Выделить весь код
copy /y %direct%da*.exe %1
или вообще
Код: Выделить весь код
copy /y %direct%*.exe %1
или добавить
Код: Выделить весь код
copy /y %direct%dacha.exe %1
copy /y %direct%daSha.exe %1

Последний раз редактировалось zion87, 03-02-2013 в 01:08.


Отправлено: 00:49, 03-02-2013 | #6

4zz 4zz вне форума Автор темы

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


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

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


zion87,
Не получается -взял 2 разных файла - один dacha.exe другой daSha.exe
Цитата zion87:
Код:
@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:\dacha.exe" ^|Findstr /bev /c:%direct%dacha.exe') do call :1 "%%~dpH"
)
goto:eof
:1
copy /y %direct%dacha.exe %1 »
и выдает:
Имя папки c:\Documents and Settings\Администратор\Local Settings\Application Dat
a\Xenocode\Sandbox\Corel Graphics Applications\15.0.0.486\2010.06.14T18.54\Virtu
al\MODIFIED\@APPDATACOMMON@\Corel\Messages\540215253_807001\EN\MessageCache1\Wor
kflow\shared\Images\installoption слишком длинно.
Запускал из папки на раб.столе.

А может надо по другому-я вообще-то хотел заменить самораспаковывающийся архив dacha.exe, запущенный, допустим с раб.стола, который при запуске распаковывает во временную директорию файл daSha.exe и данный батник и запускает его.

Последний раз редактировалось 4zz, 03-02-2013 в 01:21. Причина: редактирование


Отправлено: 01:13, 03-02-2013 | #7


Аватара для zion87

Старожил


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

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


если архив sfx то можно задать ему и папку расположения и что он должен сделать до и после распаковки

Отправлено: 01:43, 03-02-2013 | #8


Аватара для zion87

Старожил


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

Профиль | Отправить 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:\dacha.exe" ^|Findstr /bev /c:%direct%dacha.exe') do call :1 "%%~sH"
)
goto:eof
:1
echo %1
copy /y %direct%dacha.exe %1
замена пути короткими именами )))) может сейчас в 250 символов уложимся

Отправлено: 02:03, 03-02-2013 | #9

4zz 4zz вне форума Автор темы

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


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

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


Да все работает, правда сначала выдает -что слишком длинно, но затем срабатывает.
Спасибо!

Цитата zion87:
если архив sfx то можно задать ему и папку расположения и что он должен сделать до и после распаковки »
До получается, а вот после..-как написать, чтобы удалил себя? или заменил себя?

Отправлено: 13:15, 03-02-2013 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Поиск, остановка процесса, поиск и замена файла на разных дисках Gawr33 Скриптовые языки администрирования Windows 11 23-04-2011 23:09
CMD/BAT - [решено] Поиск, остановка процесса, поиск и замена файлов на разных дисках 4zz Скриптовые языки администрирования Windows 2 21-02-2011 16:07
CMD/BAT - [решено] Удаление всех файлов с одним именем на всех дисках ZARG-X Скриптовые языки администрирования Windows 3 08-03-2010 11:53
CMD/BAT - [решено] Удаление всех папок с одним именем на всех дисках volk1234 Скриптовые языки администрирования Windows 15 13-11-2009 02:13




 
Переход