2017-01-11 9 views
0

Я понимаю, что Powershell не выпускает файл до выхода скрипта. В моем сценарии я пишу новый файл, как это:Powershell Файл деблокирования

[System.IO.File]::WriteAllText("E:\Outline\newLocations.xml", $locationsContent) 

Как я могу выпустить этот файл, так что я могу читать в сценарии?

ответ

1

Метод WriteAllText не блокирует файл. Ниже приведен пример создания нового текстового файла, записи его с помощью этого метода, затем чтения из него, а затем удаления его. Вы также можете проверить это, создав файл, записывая его, затем PowerShell все еще пытается удалить его из проводника Windows. Обычно классы должны иметь метод Dispose, если вам нужно освободить экземпляр.

New-Item "C:\temp\newLocations.txt" -ItemType File 

Directory: C:\temp 


Mode    LastWriteTime   Length Name 
----    -------------   ------ ---- 
-a----  1/11/2017 12:16 PM    0 newLocations.txt 

[System.IO.File]::WriteAllText("C:\temp\newLocations.txt", "test") 

Get-Content "C:\temp\newLocations.txt" 
test 

Remove-Item "C:\temp\newLocations.txt" 

get-item "C:\temp\newLocations.txt" 
get-item : Cannot find path 'C:\temp\newLocations.txt' because it does not exist.