# 从 -DryRun 输出中抽取第 8 步渲染出来的 bash 原文,落到本地 .sh(验证转义/语法/逻辑) $text = Get-Content 'D:\charging-cabinet\.tmp-schema-align\dryrun.out.txt' -Raw $m = [regex]::Match($text, '(?ms)^\s*\[DryRun\] ssh: (set -e\r?\nshopt -s nullglob\r?\n.*?)(?=\r?\n\r?\n)') if (-not $m.Success) { throw '未找到第 8 步 DryRun 输出' } $bash = $m.Groups[1].Value -replace "`r`n", "`n" Set-Content -NoNewline -Encoding utf8 'D:\charging-cabinet\.tmp-schema-align\retention.sh' $bash Write-Host "抽取字符数: $($bash.Length)" Write-Host "含 /data/pms 次数: $(([regex]::Matches($bash,'/data/pms')).Count)"