You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
92 lines
5.7 KiB
92 lines
5.7 KiB
# 票 11 bruno-sync tag 迁移收尾:写 11 个新 folder.bru + 删 49 个旧文件(删除前验证新文件已存在)
|
|
$ErrorActionPreference = 'Stop'
|
|
$root = 'E:\code\crm-api-docs'
|
|
$utf8 = New-Object System.Text.UTF8Encoding($false)
|
|
|
|
# ---------- 1. folder.bru(name 与源码 tag 一致;seq 沿旧惯例) ----------
|
|
$folders = @(
|
|
@('A7 后台管理\业务规则', '业务规则', 10),
|
|
@('A7 后台管理\业务规则\商机规则', '商机规则', 1),
|
|
@('A7 后台管理\业务规则\商机规则\商机阶段设置', '商机阶段设置', 10),
|
|
@('A7 后台管理\业务规则\商机规则\方案卡模板', '方案卡模板', 20),
|
|
@('A7 后台管理\业务规则\商机规则\公海与提醒', '公海与提醒', 30),
|
|
@('A7 后台管理\业务规则\商机规则\商机相关字典', '商机相关字典', 40),
|
|
@('A7 后台管理\业务规则\客户规则', '客户规则', 2),
|
|
@('A7 后台管理\系统设置', '系统设置', 11),
|
|
@('A7 后台管理\系统设置\数据字典', '数据字典', 1),
|
|
@('A7 后台管理\系统设置\数据字典\分组', '分组', 1),
|
|
@('A7 后台管理\系统设置\数据字典\字典项', '字典项', 2)
|
|
)
|
|
foreach ($f in $folders) {
|
|
$dir = Join-Path $root $f[0]
|
|
if (-not (Test-Path -LiteralPath $dir)) { throw ('missing dir: ' + $dir) }
|
|
$content = "meta {`n name: $($f[1])`n seq: $($f[2])`n}`n"
|
|
[IO.File]::WriteAllText((Join-Path $dir 'folder.bru'), $content, $utf8)
|
|
}
|
|
Write-Output ('folder.bru written: ' + $folders.Count)
|
|
|
|
# ---------- 2. 删除旧文件(每个文件删除前验证对应新文件已存在,否则保留并报错) ----------
|
|
$mig = @(
|
|
@('A7 后台管理\商机规则\阶段模板', 'A7 后台管理\业务规则\商机规则\商机阶段设置'),
|
|
@('A7 后台管理\商机规则\方案卡模板', 'A7 后台管理\业务规则\商机规则\方案卡模板'),
|
|
@('A7 后台管理\商机规则\公海规则', 'A7 后台管理\业务规则\商机规则\公海与提醒'),
|
|
@('A7 后台管理\客户管理设置\超期未跟进提醒', 'A7 后台管理\业务规则\客户规则\客户管理设置(超期未跟进提醒)'),
|
|
@('A7 后台管理\客户管理设置\查重设置', 'A7 后台管理\业务规则\客户规则\客户管理设置(客户查重设置)'),
|
|
@('A7 后台管理\数据字典\分组', 'A7 后台管理\系统设置\数据字典\分组'),
|
|
@('A7 后台管理\数据字典\字典项', 'A7 后台管理\系统设置\数据字典\字典项')
|
|
)
|
|
$deleted = 0
|
|
$errors = @()
|
|
foreach ($m in $mig) {
|
|
$oldDir = Join-Path $root $m[0]
|
|
foreach ($fn in (Get-ChildItem -LiteralPath $oldDir -Filter '*.bru' | Select-Object -ExpandProperty Name)) {
|
|
$must = Join-Path (Join-Path $root $m[1]) $fn
|
|
if (-not (Test-Path -LiteralPath $must)) {
|
|
$errors += ('NEW MISSING, keep old: ' + $m[0] + '\' + $fn)
|
|
continue
|
|
}
|
|
Remove-Item -LiteralPath (Join-Path $oldDir $fn) -Force
|
|
$deleted++
|
|
}
|
|
}
|
|
# 旧父目录 folder.bru(迁移后父目录空掉)
|
|
foreach ($pair in @(
|
|
@('A7 后台管理\商机规则\folder.bru', 'A7 后台管理\业务规则\商机规则\folder.bru'),
|
|
@('A7 后台管理\数据字典\folder.bru', 'A7 后台管理\系统设置\数据字典\folder.bru'))) {
|
|
if (Test-Path -LiteralPath (Join-Path $root $pair[1])) {
|
|
Remove-Item -LiteralPath (Join-Path $root $pair[0]) -Force
|
|
$deleted++
|
|
} else {
|
|
$errors += ('NEW MISSING, keep old: ' + $pair[0])
|
|
}
|
|
}
|
|
Write-Output ('deleted: ' + $deleted)
|
|
$errors | ForEach-Object { Write-Output (' ! ' + $_) }
|
|
|
|
# ---------- 3. 清理空目录(仅删确认已空的目录) ----------
|
|
foreach ($d in @('A7 后台管理\商机规则\阶段模板', 'A7 后台管理\商机规则\方案卡模板', 'A7 后台管理\商机规则\公海规则',
|
|
'A7 后台管理\商机规则', 'A7 后台管理\客户管理设置\超期未跟进提醒', 'A7 后台管理\客户管理设置\查重设置',
|
|
'A7 后台管理\客户管理设置', 'A7 后台管理\数据字典\分组', 'A7 后台管理\数据字典\字典项', 'A7 后台管理\数据字典')) {
|
|
$full = Join-Path $root $d
|
|
if ((Test-Path -LiteralPath $full) -and -not (Get-ChildItem -LiteralPath $full)) {
|
|
Remove-Item -LiteralPath $full -Force
|
|
Write-Output ('rmdir: ' + $d)
|
|
}
|
|
}
|
|
|
|
# ---------- 4. 台账 ----------
|
|
Write-Output '--- new structure ---'
|
|
foreach ($d in @('A7 后台管理\业务规则', 'A7 后台管理\业务规则\商机规则', 'A7 后台管理\业务规则\商机规则\商机阶段设置',
|
|
'A7 后台管理\业务规则\商机规则\方案卡模板', 'A7 后台管理\业务规则\商机规则\公海与提醒',
|
|
'A7 后台管理\业务规则\商机规则\商机相关字典', 'A7 后台管理\业务规则\客户规则',
|
|
'A7 后台管理\业务规则\客户规则\客户管理设置(超期未跟进提醒)',
|
|
'A7 后台管理\业务规则\客户规则\客户管理设置(客户查重设置)',
|
|
'A7 后台管理\系统设置', 'A7 后台管理\系统设置\数据字典',
|
|
'A7 后台管理\系统设置\数据字典\分组', 'A7 后台管理\系统设置\数据字典\字典项')) {
|
|
$full = Join-Path $root $d
|
|
$cnt = @(Get-ChildItem -LiteralPath $full).Count
|
|
Write-Output ('{0,2} files: {1}' -f $cnt, $d)
|
|
}
|
|
foreach ($d in @('A7 后台管理\商机规则', 'A7 后台管理\数据字典', 'A7 后台管理\客户管理设置')) {
|
|
Write-Output ('old {0} exists: {1}' -f $d, (Test-Path -LiteralPath (Join-Path $root $d)))
|
|
}
|
|
|