вы найдете на веб-сайте Microsoft объяснение странного поведения ' квадратных скобок ' в выражениях PowerShell.
НО
Когда я просто пишу следующее (без скобок), оно просто не работает для меня:
Set-Content -LiteralPath "\\server\share\temp\test.txt" -Value "coucou"
, но (согласно статье Microsoft) следующие работы
Set-Content -Path "\\server\share\temp\test.txt" -Value "coucou"
set-content -path '\\server\share\temp\`[test`].txt' -Value "coucou"
Я пытался решить эту проблему с помощью PowerShell Drive
New-PSDrive -Name u -PSProvider filesystem -Root "\\server\share"
И это было еще хуже
Set-Content : Impossible de trouver une partie du chemin d'accès '\\server\share\server\share\server\share\temp\test.txt'.
Au niveau de ligne : 1 Caractère : 12
+ set-content <<<< -literalpath "u:\temp\test.txt" -Value "coucou"
+ CategoryInfo : ObjectNotFound: (\\server\shar...e\temp\test.txt:String) [Set-Content], DirectoryNotFo
undException
+ FullyQualifiedErrorId : GetContentWriterDirectoryNotFoundError,Microsoft.PowerShell.Commands.SetContentCommand
Повернуть решение по кругу 1: Я решаю его, используя:
net use u: \\server\share
set-content -literalpath "u:\temp\test.txt" -Value "coucou"
И затем следующие действия
set-content -literalpath "u:\temp\[test].txt" -Value "coucou"
Поверните решение 2 2 : , используя FileInfo
# Create the file
set-content -path '\\server\share\temp\`[test`].txt' -Value "coucou"
# Get a FileInfo
$fic = Get-Item '\\server\share\temp\`[test`].txt'
# Get a stream Writer
$sw = $fic.AppendText()
# Append what I need
$sw.WriteLine("test")
# Don't forget to close the stream writter
$sw.Close()
Я думаю, что объяснение в том, что в -literalpath
UNC плохо поддерживаются