Показать полную графическую версию : [решено] Цикл "пока существует файл"
Steklopaket
21-03-2017, 17:03
Всем здравствуйте.
Имеется простенький вопрос, на решение которого у меня не хватает знаний. Имеется такой код:
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
Iska
Просто файл может использоваться, Unlocker его разблокировывает, но т.к. эффект срабатывает не сразу, то файл по прежнему недоступен для переименования: "Процесс не может получить доступ к файлу, так как этот файл занят другим процессом". Поэтому переименование надо повторять (на всякий случай вместе с разблокированием).
Unlocker его разблокировывает, но т.к. эффект срабатывает не сразу, »
Естественно. Вы ведь отдаёте команду на запуск Unlocker'а и тут же сразу пытаетесь переименовать файл.
Попробуйте либо просто:
"Unlocker.exe" file.exe /s
либо:
start "" /wait "Unlocker.exe" file.exe /s
greg zakharov
21-03-2017, 18:13
В чём смысл?
Смысл таков, что без бутылки не разобраться, ибо если файл исполняемый и, следовательно, иницирует некий процесс, зачем его насиловать лапать анлокером?! Steklopaket, ну прибъет анлокер некоторые хэндлы, а дальше что?! Если нужно просто наблюдать за файлом, не проще ли взять PowerShell и обратиться к FileSystemWatcher?
Steklopaket
21-03-2017, 19:32
start "" /wait "Unlocker.exe" file.exe /s »
Спасибо! Это решение лучше чем то, что я хотел!
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.