Затворете всички локално отворени файлове в дадена директория

Опитвам се да добавя стъпка към групов процес, за да се уверя, че всички локални файлове са затворени в конкретна директория.

Всичко, което мога да намеря, продължава да ме насочва към Net Files и Openfiles, но и двете опции затварят само отворени файлове, достъпни чрез споделяне (не локално).

Разгледах както taskkill, така и инструмента за обработка на Microsoft, но от това, което мога да кажа, това не е най-умният начин да се справите с тази задача.

Има ли еквивалент на Net Files, който ще затвори файлове, отворени локално?

Всяка помощ ще бъде оценена.


person JCbstn77    schedule 19.08.2013    source източник
comment
коя ОС имаш предвид?   -  person Nir Alfasi    schedule 20.08.2013
comment
Съжалявам - използвам windows server 2008R2   -  person JCbstn77    schedule 20.08.2013
comment
защо не използвате handle?   -  person Endoro    schedule 20.08.2013
comment
Бих препоръчал също handle. Обърнете специално внимание обаче на предупреждението в раздела за използване.   -  person Ansgar Wiechers    schedule 20.08.2013
comment
Все още не съм го пробвал, но прочетох няколко предупреждения, че принудителното затваряне на манипулатори чрез handle.exe може да причини нестабилност на системата - така че не бях сигурен дали всъщност е добра идея да правя това всяка вечер. Ще се опитам да погледна малко по-дълбоко дръжката.   -  person JCbstn77    schedule 20.08.2013
comment
затварянето на файлови манипулатори след BS може да срине системата, без значение какъв инструмент използвате.   -  person Endoro    schedule 20.08.2013
comment
По-скоро трябва да разгледате повече какво всъщност държи тези дръжки отворени. Както каза Ендоро, проблемът не е в инструмента, който използвате, а в това, че насилствено затваряте манипулатори, които приложението очаква да бъдат все още отворени. Защо смятате, че имате нужда от това на първо място?   -  person Ansgar Wiechers    schedule 20.08.2013
comment
Проблемът всъщност е доста прост - от време на време случайно оставям бележник отворен или отворен команден ред в моята компилационна директория. Когато ANT се опита да изтрие директорията, той се проваля, защото файлът или директорията са отворени. Това оставя моята компилационна директория в лошо състояние. Когато изграждането започне да се изпълнява, то се проваля. Искам да сложа защита срещу отказ, която да гарантира, че няма нищо отворено в директорията. Всъщност това се случва доста рядко - просто исках да сложа допълнителна стъпка, за да се уверя, че нищо не е отворено.   -  person JCbstn77    schedule 20.08.2013
comment
Ако те бяха отворени от мрежов дял, Net File или Openfiles биха се погрижили за това, но за съжаление това винаги е нещо, което остава отворено директно на сървъра.   -  person JCbstn77    schedule 20.08.2013


Отговори (1)


можете да опитате това с handle на командния ред:

for /f "tokens=2 delims=:" %a in ('handle "c:\folder"') do @for /f %b in ("%~a") do @echo handle -c %~b

Премахнете echo, ако резултатът изглежда добре.

person Endoro    schedule 20.08.2013