Попытка создать скрипт для разблокировки всех заблокированных файлов в папке с помощью Windows handle.exe
.Но когда я разделяю вывод, значение имени файла становится ... странным (все остальные значения в порядке).
Пример вывода handle.exe
таков:
REM perl.exe pid: 12532 type: File PCNAME\UserName 144: C:\dev\massunlocker\Eula.txt
REM a perl.exe
REM b pid:
REM c 12532
REM d type:
REM e File
REM f PCNAME\UserName
REM g 144:
REM h C:\dev\massunlocker\Eula.txt
Такиз этого мне нужно c
, g
и h
.
@echo off
setlocal EnableDelayedExpansion
for /f "tokens=1,2,3,4,5,6,7,8 delims= " %%a in ( 'handle64.exe C:\dev\massunlocker\sample-dir -u -nobanner' ) do (
REM echo a = "%%a"
REM echo b = "%%b"
REM echo c = "%%c"
REM echo d = "%%d"
REM echo e = "%%e"
REM echo f = "%%f"
REM echo g = "%%g"
REM echo h = "%%h"
echo [%%h]
)
:end
setlocal DisableDelayedExpansion
Первые 2 в порядке, но %%h
хм странно (отредактировано)?
]C:\dev\massunlocker\sample-dir\ae\pdf
]C:\dev\massunlocker\sample-dir
]C:\dev\massunlocker\sample-dir\ae
Почему это не так?:
[C:\dev\massunlocker\sample-dir\ae\pdf]
[C:\dev\massunlocker\sample-dir]
[C:\dev\massunlocker\sample-dir\ae]
И я не могу проверить, является ли он каталогом или файлом, например, для not exist
это всегда так.
Редактировать: вот выходной пример сстроки без комментариев:
a = "cmd.exe"
b = "pid:"
c = "1624"
d = "type:"
e = "File"
f = "PCNAME\UserName"
g = "1FC:"
" = "C:\dev\massunlocker\sample-dir
обратите внимание на последнюю строку ...
PS Ручка инструмента