Steklopaket |
21-03-2017 17:03 2721766 |
Цикл "пока существует файл"
Всем здравствуйте.
Имеется простенький вопрос, на решение которого у меня не хватает знаний. Имеется такой код:
Код:
if exist file.exe (
start "" "Unlocker.exe" file.exe /s
ren file.exe file.lib
)
Т.е. если существует файл, выполняются 2 строчки кода. А как сделать пока существует файл, выполняются 2 строчки кода?
|
Steklopaket, так его после ren уже не существует. В чём смысл?
|
Steklopaket |
21-03-2017 17:39 2721784 |
Iska
Просто файл может использоваться, Unlocker его разблокировывает, но т.к. эффект срабатывает не сразу, то файл по прежнему недоступен для переименования: "Процесс не может получить доступ к файлу, так как этот файл занят другим процессом". Поэтому переименование надо повторять (на всякий случай вместе с разблокированием).
|
Цитата:
Цитата Steklopaket
Unlocker его разблокировывает, но т.к. эффект срабатывает не сразу, »
|
Естественно. Вы ведь отдаёте команду на запуск Unlocker'а и тут же сразу пытаетесь переименовать файл.
Попробуйте либо просто:
Код:
"Unlocker.exe" file.exe /s
либо:
Код:
start "" /wait "Unlocker.exe" file.exe /s
|
greg zakharov |
21-03-2017 18:13 2721796 |
Смысл таков, что без бутылки не разобраться, ибо если файл исполняемый и, следовательно, иницирует некий процесс, зачем его насиловать лапать анлокером?! Steklopaket, ну прибъет анлокер некоторые хэндлы, а дальше что?! Если нужно просто наблюдать за файлом, не проще ли взять PowerShell и обратиться к FileSystemWatcher?
|
Steklopaket |
21-03-2017 19:32 2721813 |
Цитата:
Цитата Iska
start "" /wait "Unlocker.exe" file.exe /s »
|
Спасибо! Это решение лучше чем то, что я хотел!
|
Время: 22:40.
© OSzone.net 2001-