Skip to content

Commit ac1075d

Browse files
committed
fix: 修复在非交互式会话中设置控制台编码的错误
在非交互式会话中访问 RawUI 属性会引发异常。通过检查 $Host.UI.RawUI 是否存在来避免此问题。 同时修正 Join-Path 的调用语法,确保每个路径被独立计算。
1 parent 1df461a commit ac1075d

1 file changed

Lines changed: 8 additions & 6 deletions

File tree

static/post/openclaw-uninstall/CleanupOpenClawForWindows.ps1

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,11 @@ param(
1414
[switch]$Silent # Silent mode
1515
)
1616

17-
# Set console encoding
18-
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
19-
[Console]::InputEncoding = [System.Text.Encoding]::UTF8
17+
# Set console encoding only if running in an interactive session
18+
if ($Host.UI.RawUI) {
19+
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
20+
[Console]::InputEncoding = [System.Text.Encoding]::UTF8
21+
}
2022

2123
$ErrorActionPreference = "Continue"
2224

@@ -58,10 +60,10 @@ function Find-NodePath {
5860
# Get all user profiles from C:\Users, ignore common non-user dirs
5961
$userDirs = Get-ChildItem -Path (Join-Path $env:SystemDrive 'Users') -Directory -Exclude 'Public', 'Default', 'All Users' -ErrorAction SilentlyContinue
6062
foreach ($userDir in $userDirs) {
61-
# Common paths where node/npm might be found
63+
# Use parentheses to ensure each Join-Path is evaluated independently
6264
$nodePaths = @(
63-
Join-Path $userDir.FullName 'AppData\Roaming\npm',
64-
Join-Path $userDir.FullName 'AppData\Local\Programs\nodejs'
65+
(Join-Path $userDir.FullName 'AppData\Roaming\npm'),
66+
(Join-Path $userDir.FullName 'AppData\Local\Programs\nodejs')
6567
)
6668
foreach ($path in $nodePaths) {
6769
$nodeExe = Join-Path $path 'node.exe'

0 commit comments

Comments
 (0)