你可以在
微软网站上找到有关PowerShell表达式中方括号的奇怪行为的解释。
但是,当我只写以下内容(不使用方括号)时,它对我没有作用:
Set-Content -LiteralPath "\\server\share\temp\test.txt" -Value "coucou"
但是(根据微软文章),以下内容可以正常工作。
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"
Turn arround solution 2 : using FileInfo
set-content -path '\\server\share\temp\`[test`].txt' -Value "coucou"
$fic = Get-Item '\\server\share\temp\`[test`].txt'
$sw = $fic.AppendText()
$sw.WriteLine("test")
$sw.Close()
我认为解释在于,在
-literalpath
中,UNC支持不佳。