首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >powershell [System.IO.File]::WriteAllLines不工作

powershell [System.IO.File]::WriteAllLines不工作
EN

Stack Overflow用户
提问于 2021-10-22 19:16:21
回答 2查看 162关注 0票数 2

这些PowerShell命令出了什么问题。它不会写入文件"test.txt“

代码语言:javascript
复制
PS> $stuff = @("AAA`n", "BBB`n")
PS> [System.IO.File]::WriteAllLines(".\test.txt", $stuff)
PS> dir
# Nothing here....

我的计算机上是否有任何错误配置可能导致此问题?我需要以某种方式重新安装.net吗?

EN

回答 2

Stack Overflow用户

发布于 2021-10-22 19:37:25

尝试dir ~\test.txt -或者使用绝对路径c:\path\to\my\test.txt。更好的做法是查看Set-Content cmdlet。

仅供参考:您的计算机没有任何问题-您使用的是dotnet库,因此您需要更具体(基本上)。Set-Content是实现这一点的powershell方式( .\test.txt的工作方式与您的预期不谋而合)。

票数 1
EN

Stack Overflow用户

发布于 2021-10-22 19:49:57

.Net与您的PowerShell使用的路径不同。解决方案是将相对路径解析为完整路径:

代码语言:javascript
复制
PS C:\> $stuff = @("AA", "BB")
PS C:\> $out_file = ".\out.txt"
PS C:\> New-Item -Force -Path $out_file
PS C:\> $out_full = $(Resolve-Path -Path $out_file)
PS C:\>[System.IO.File]::WriteAllLines(` 
    ".\testing.txt", $out_full)

一种更好的方法:

代码语言:javascript
复制
function open_w {
    param([string]$path)
    write-host "path: $path"
    $pathfix =  $ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath($path)
    return [System.IO.StreamWriter]::new($pathfix)
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69682081

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档