From 5b8d62e17f5db360a61b5504c90cbffc56d6d9b3 Mon Sep 17 00:00:00 2001
From: yeg <1347747024@qq.com>
Date: 星期五, 09 十月 2026 13:50:24 +0800
Subject: [PATCH] 修文件探查脚本在"自动查找目录"分支崩溃,并把整个脚本端到端跑通

---
 scripts/j22-introspect-files.ps1 |   19 +++++++++++++++----
 1 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/scripts/j22-introspect-files.ps1 b/scripts/j22-introspect-files.ps1
index 6f5bb9e..8d17537 100644
--- a/scripts/j22-introspect-files.ps1
+++ b/scripts/j22-introspect-files.ps1
@@ -143,6 +143,8 @@
 
 try {
     # ---------------------------------------------------------------- 1. 要找哪些目录
+    # 要探查的目录放进自己的列表:-Roots 是 [string[]] 定长数组,不能往里 Add。
+    $targets = New-Object System.Collections.ArrayList
     if (-not $Roots -or $Roots.Count -eq 0) {
         Say '=== 1. 自动查找目录 ==='
         $found = New-Object System.Collections.ArrayList
@@ -164,17 +166,26 @@
         }
         foreach ($directory in $found) {
             Say ("  候选目录:" + $directory)
-            [void]$Roots.Add($directory)
+            [void]$targets.Add($directory)
         }
-        if ($Roots.Count -eq 0) {
+        if ($targets.Count -eq 0) {
             Say '  没有找到任何候选目录。请手工指定,例如:-Roots ''D:\<软件目录>'''
         }
     }
-    else { Say '=== 1. 指定目录 ===' }
+    else {
+        Say '=== 1. 指定目录 ==='
+        foreach ($root in $Roots) {
+            # 用 -File 从命令行传数组时,多个目录可能被当成一个字符串('D:\a,D:\b'),按逗号再拆一次。
+            foreach ($single in @($root -split ',')) {
+                $trimmed = $single.Trim().Trim('"')
+                if ($trimmed) { Say ("  指定目录:" + $trimmed); [void]$targets.Add($trimmed) }
+            }
+        }
+    }
 
     # ---------------------------------------------------------------- 2. 方案候选文件
     $candidates = New-Object System.Collections.ArrayList
-    foreach ($root in $Roots) {
+    foreach ($root in $targets) {
         if (-not (Test-Path -LiteralPath $root)) { Say ("  目录不存在:" + $root); continue }
         Say ''
         Say ("=== 2. 方案候选文件:" + $root + " ===")

--
Gitblit v1.7.1