Я использую SSIS и Powershell, чтобы проверить, заблокирован ли файл или нет.
У меня есть приведенное ниже выражение в переменной с именем «Cmd»:
"-NoProfile -ExecutionPolicy ByPass -Command \"try { [IO.File]::OpenWrite(‘” + @[User::TestFilePath] + “‘).close();0 } catch {999}"
Что оценивает это:
-NoProfile -ExecutionPolicy ByPass -Command "try { [IO.File]::OpenWrite(‘” + @[User::TestFilePath] + “‘).close();0 } catch {999}
Используя задачу «Выполнение процесса», я затем вызываю переменную Cmd, указанную выше, и после нее у меня есть ограничения «Успех» и «Отказ». Процесс всегда сообщает об успехе, даже если я открываю соответствующий файл, переименовываю или даже удаляю его.
Если я затем изменю приведенное ниже, задача всегда будет терпеть неудачу, даже если она не открыта:
"-NoProfile -ExecutionPolicy ByPass -Command \"try { [IO.File]::OpenWrite(‘” + @[User::TestFilePath] + “‘).close();exit 0} catch {exit 999}"
Что мне не хватает?