Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Поиск, остановка процесса, поиск и замена файла на разных дисках (http://forum.oszone.net/showthread.php?t=205484)

Gawr33 23-04-2011 17:34 1664426

Поиск, остановка процесса, поиск и замена файла на разных дисках
 
Просьба помочь написать батник по следующим условиям:
1.Проверить не запущен ли файл skype.exe и если запущен убить процесс.
2.Найти на дисках файл main.db и заменить его аналогичным (main.db) из директории с батником.
3.Запустить skype.

Foreigner 23-04-2011 18:28 1664446

Gawr33,

Код:

@echo off

2>nul taskkill /im skype.exe /f
for %%i in (q w e r t y u i o p a s d f g h j k l z x c v b n m) do if exist %%i:\main.db copy /y main.db %%i:\
start "" "%programfiles%\skype\skype.exe"


Gawr33 23-04-2011 19:23 1664474

Foreigner, процесс убивается и запускается но самое главное найти и скопировать что то не выходит, на этом вопросе я почему то завис

Foreigner 23-04-2011 19:48 1664483

Цитата:

Цитата Gawr33
но самое главное найти и скопировать что то не выходит »

Может не хватает прав? В корень диска. Как вы запускаете батник? Попробуйте оставить только существующие диски и прописать путь к батнику:
Код:

for %%i in (c d) do (

    if exist %%i:\main.db copy /y "%~dp0main.db" %%i:\main.db

)


Gawr33 23-04-2011 20:26 1664508

Foreigner,извините, но походу дела я ничего в этом не смыслю, как я не пытался крутить ничего не выходит, файл main.db, который находится в папке где и батник никак не хочет копироваться с заменой в нужное место.

Foreigner 23-04-2011 20:50 1664531

Gawr33,
Не знаю даже. У меня тестовый файл скопировался-заменился. Тут, на мой взгляд, две возможные преграды: либо не хватает привилегий для записи в корень диска ( системного ), либо main.db занята каким-либо процессом.

Попробуйте заменить copy на xcopy ( ради ключа /r, позволяющего перезаписать readonly файлы ):
Код:

.... xcopy /y /r "%~dp0main.db" %%i:\main.db

Gawr33 23-04-2011 21:01 1664540

Спасибо , буду пробовать

Foreigner, извините я сам ошибся в изначальной задаче файл main.db находится не в корне диска, а в папке, возможен ли вариант найти и заменить, очень буду признателен, просто я в этом вопросе полный ноль.

Foreigner 23-04-2011 21:26 1664557

Цитата:

в изначальной задаче файл main.db находится не в корне диска, а в папке, возможен ли вариант найти и заменить
Можно уточнить? Название папки с main.db известно или ее надо найти?

Iska 23-04-2011 22:05 1664583

Foreigner, очевидно, что Gawr33 хочет найти и заменить «main.db», находящиеся в профилях пользователей:
Код:

%AppData%\Skype\<login>
а не в корне раздела.

Gawr33 23-04-2011 22:21 1664602

Цитата:

Цитата Foreigner
Можно уточнить? Название папки с main.db известно или ее надо найти? »

Iska спасибо да именно там, поэтому необходимо найти файл, так как название папки меняется, в зависимости от логина skype

Foreigner 23-04-2011 22:43 1664619

Цитата:

Цитата Gawr33
так как название папки меняется, в зависимости от логина skype »

Если честно, скайпом не пользуюсь. Если правильно понял, то main.db находится в одной из подпапок %AppData%\Skype\
Код:

@echo off

2>nul taskkill /im skype.exe /f

for /f "tokens=*" %%i in (' dir /b /s /a "%appdata%\skype\main.db" ') do (

    xcopy /y /r "%~dp0main.db" "%%i"

)

start "" "%programfiles%\skype\skype.exe"


Gawr33 23-04-2011 23:09 1664637

Foreigner, спасибо, заработало все как надо


Время: 01:10.

Время: 01:10.
© OSzone.net 2001-