What version of Kimi Code is running?
0.20.1
Which open platform/subscription were you using?
Windows 11
Which model were you using?
K2.7 Code High Speed
What platform is your computer?
Microsoft Windows NT 10.0.26100.0 x64
What issue are you seeing?
当 kimi.exe 正在运行时,重复执行安装脚本会失败,报错:
ERROR: 当文件已存在时,无法创建该文件。
Root Cause Analysis
这是 Windows PE 加载器的行为:运行中的进程会持有其可执行文件的映像句柄。Windows 允许重命名正在运行的 .exe(所以 Move-Item 可以成功),但不允许删除或覆盖被重命名后的文件(所以 Remove-Item 和后续的 Move-Item -Force 会失败)。
What steps can reproduce the bug?
- 确保 %USERPROFILE%.kimi-code\bin\ 目录下没有 kimi.exe.bak 文件
- 打开终端并运行 kimi 启动 TUI
- 在另一个 PowerShell 窗口中运行:irm https://code.kimi.com/kimi-code/install.ps1 | iex
- 第1次安装成功(创建了 kimi.exe.bak)
- 不退出 kimi TUI,再次运行:irm https://code.kimi.com/kimi-code/install.ps1 | iex
- 第2次安装失败,报错:当文件已存在时,无法创建该文件。
What is the expected behavior?
安装脚本应该正确处理 kimi.exe 正在运行的情况,即使 kimi.exe.bak 已存在且被锁定,也能完成安装。
Recommended Fix
将第 362-368 行的备份逻辑改为使用带时间戳的备份文件名,避免与被锁定的 .bak 文件冲突:
if (Test-Path $binaryDest) {
$backup = "$binaryDest.bak"
if (Test-Path $backup) {
try {
Remove-Item $backup -Force -ErrorAction Stop
} catch {
# 文件被运行中的进程锁定,使用带时间戳的备份名
$backup = "$binaryDest.$(Get-Date -Format 'yyyyMMddHHmmss').bak"
}
}
Move-Item $binaryDest $backup -Force
Write-Step "Backed up existing kimi.exe to $([System.IO.Path]::GetFileName($backup))"
}
修复说明:
- 保留原有 Remove-Item 尝试,但将 -ErrorAction SilentlyContinue 改为 -ErrorAction Stop
- 当 Remove-Item 失败(文件被锁定)时,回退到使用带时间戳的备份文件名
- 确保无论 .bak 是否被锁定,安装都能继续完成
Additional information
What version of Kimi Code is running?
0.20.1
Which open platform/subscription were you using?
Windows 11
Which model were you using?
K2.7 Code High Speed
What platform is your computer?
Microsoft Windows NT 10.0.26100.0 x64
What issue are you seeing?
当 kimi.exe 正在运行时,重复执行安装脚本会失败,报错:
ERROR: 当文件已存在时,无法创建该文件。
Root Cause Analysis
这是 Windows PE 加载器的行为:运行中的进程会持有其可执行文件的映像句柄。Windows 允许重命名正在运行的 .exe(所以 Move-Item 可以成功),但不允许删除或覆盖被重命名后的文件(所以 Remove-Item 和后续的 Move-Item -Force 会失败)。
What steps can reproduce the bug?
What is the expected behavior?
安装脚本应该正确处理 kimi.exe 正在运行的情况,即使 kimi.exe.bak 已存在且被锁定,也能完成安装。
Recommended Fix
将第 362-368 行的备份逻辑改为使用带时间戳的备份文件名,避免与被锁定的 .bak 文件冲突:
修复说明:
Additional information