You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell中[System.IO.File]::WriteAllLines无法写入文件如何解决

问题根因
  • 这个问题和电脑配置、.NET 运行环境无关,完全不需要重装 .NET,属于 PowerShell 调用 .NET 类方法时的常见路径差异问题。
  • 核心原因是 PowerShell 的当前工作目录和 .NET 运行时的默认工作目录不会同步更新:.NET 类方法的工作目录默认是 PowerShell 进程启动时的目录,你在 PowerShell 中用 cd 切换的工作路径不会同步给 .NET 运行时。你写的相对路径 .\test.txt 实际被写入到了 .NET 对应的默认工作目录下,而非你当前 PowerShell 所在的目录,所以执行 dir 看不到文件。
验证方式

执行以下命令即可查看 .NET 实际的工作目录,你的 test.txt 文件就存放在这个路径下:

[Environment]::CurrentDirectory
修复方案

调用 .NET 文件操作方法时传入绝对路径即可,推荐用 PowerShell 内置的 $PWD 变量拼接当前工作目录的绝对路径,修改后的代码如下:

PS> $stuff = @("AAA`n", "BBB`n")
PS> $fullPath = Join-Path $PWD.Path "test.txt"
PS> [System.IO.File]::WriteAllLines($fullPath, $stuff)
PS> dir

执行后就能在当前目录看到生成的 test.txt 文件。

内容的提问来源于stack exchange,提问作者pico

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 11:24:03