Причина, по которой вы не получаете сообщение об ошибке, заключается в том, что вызов, вероятно, был успешным!
Когда вы вызываете CreateTextFile
и передаете путь к файлу C:\temp:AAAAA.txt
, вы фактически запрашиваете создание файла C:\temp
с альтернативным потоком данных (ADS
) с именем AAAAA.txt
.
Вы можете убедиться сами с помощью Get-Item
:
PS C:\> Get-Item C:\temp -Stream AAAAA.txt
PSPath : Microsoft.PowerShell.Core\FileSystem::C:\temp:AAAAA.txt
PSParentPath : Microsoft.PowerShell.Core\FileSystem::C:\
PSChildName : temp:AAAAA.txt
PSDrive : C
PSProvider : Microsoft.PowerShell.Core\FileSystem
PSIsContainer : False
FileName : C:\temp
Stream : AAAAA.txt
Length : 0
Вы также можете читать и писать в альтернативные потоки данных (требуется PowerShell версии 5 или новее):
PS C:\> "Hello there!" |Set-Content C:\temp -Stream AAAAA.txt
PS C:\> Get-Content C:\temp -Stream AAAAA.txt
Hello there!
Обратите внимание, что эти потоки данных встроены c в NTFS и не сохранятся, если вы скопируете файл в файловую систему, отличную от NTFS, или, например, загрузите их на веб-сайт.