fix(promotion-import): 实例(一)(二)多备选源路径;目录内唯一 mov/jpg 自动匹配

Made-with: Cursor
This commit is contained in:
whm
2026-03-21 21:47:06 +08:00
parent 1710a11dad
commit 6d049fe0e8
4 changed files with 141 additions and 56 deletions

View File

@@ -6,26 +6,40 @@ $Src = Join-Path $Root "web\promotion\视频发布"
$Dst = Join-Path $Root "web\promotion\social"
New-Item -ItemType Directory -Force -Path $Dst | Out-Null
function Copy-IfExists($fromRel, $toName) {
$from = Join-Path $Src $fromRel
function Copy-First($toName, [string[]]$fromRels) {
$to = Join-Path $Dst $toName
if (Test-Path -LiteralPath $from) {
Copy-Item -LiteralPath $from -Destination $to -Force
Write-Host "OK $toName"
} else {
Write-Warning "SKIP (缺失): $from"
foreach ($rel in $fromRels) {
$from = Join-Path $Src $rel
if (Test-Path -LiteralPath $from) {
Copy-Item -LiteralPath $from -Destination $to -Force
Write-Host "OK $toName <= $rel"
return
}
}
Write-Warning "SKIP (均未找到): -> $toName"
}
Copy-IfExists "宇恒一号操作计算软件实例(一)\宣传片-封面.jpg" "video-calc-demo-1-cover.jpg"
Copy-IfExists "宇恒一号操作计算软件实例(一)\宣传片.mov" "video-calc-demo-1.mov"
Copy-IfExists "宇恒一号操作计算软件实例(\宇恒一号操作计算软件实例(-封面.jpg" "video-calc-demo-2-cover.jpg"
Copy-IfExists "宇恒一号操作计算软件实例(二)\宇恒一号操作计算软件实例(二).mov" "video-calc-demo-2.mov"
Copy-IfExists "宇恒一号AIWord简介\宇恒一号AIWord简介-封面.jpg" "video-aiword-cover.jpg"
Copy-IfExists "宇恒一号AIWord简介\宇恒一号AIWord简介.mov" "video-aiword.mov"
Copy-IfExists "宇恒一号语音办公实例\宇恒一号语音办公实例-封面.jpg" "video-voice-office-cover.jpg"
Copy-IfExists "宇恒一号语音办公实例\宇恒一号语音办公实例.mov" "video-voice-office.mov"
Copy-IfExists "宇恒一号AI 全自动办发票\宇恒一号AI 全自动办发票-封面.jpg" "video-invoice-ai-cover.jpg"
Copy-IfExists "宇恒一号AI 全自动办发票\宇恒一号AI 全自动办发票.mov" "video-invoice-ai.mov"
Copy-First "video-calc-demo-1-cover.jpg" @(
"宇恒一号操作计算软件实例(一)\宣传片-封面.jpg",
"宇恒一号操作计算软件实例(\宇恒一号操作计算软件实例(-封面.jpg"
)
Copy-First "video-calc-demo-1.mov" @(
"宇恒一号操作计算软件实例(一)\宣传片.mov",
"宇恒一号操作计算软件实例(一)\宇恒一号操作计算软件实例(一).mov"
)
Copy-First "video-calc-demo-2-cover.jpg" @(
"宇恒一号操作计算软件实例(二)\宇恒一号操作计算软件实例(二)-封面.jpg",
"宇恒一号操作计算软件实例(二)\宣传片-封面.jpg"
)
Copy-First "video-calc-demo-2.mov" @(
"宇恒一号操作计算软件实例(二)\宇恒一号操作计算软件实例(二).mov",
"宇恒一号操作计算软件实例(二)\宣传片.mov"
)
Copy-First "video-aiword-cover.jpg" @("宇恒一号AIWord简介\宇恒一号AIWord简介-封面.jpg")
Copy-First "video-aiword.mov" @("宇恒一号AIWord简介\宇恒一号AIWord简介.mov")
Copy-First "video-voice-office-cover.jpg" @("宇恒一号语音办公实例\宇恒一号语音办公实例-封面.jpg")
Copy-First "video-voice-office.mov" @("宇恒一号语音办公实例\宇恒一号语音办公实例.mov")
Copy-First "video-invoice-ai-cover.jpg" @("宇恒一号AI 全自动办发票\宇恒一号AI 全自动办发票-封面.jpg")
Copy-First "video-invoice-ai.mov" @("宇恒一号AI 全自动办发票\宇恒一号AI 全自动办发票.mov")
Write-Host "完成。Linux 服务器上建议在 social 目录执行: chmod -R a+rX ."

View File

@@ -8,35 +8,48 @@ SRC="$ROOT/web/promotion/视频发布"
DST="$ROOT/web/promotion/social"
mkdir -p "$DST"
copy_if () {
local from="$1" to="$2"
if [[ -f "$from" ]]; then
cp -f "$from" "$to"
echo "OK $to"
else
echo "SKIP (缺失): $from" >&2
fi
# 按顺序使用第一个存在的源文件
copy_first() {
local dest="$1"
shift
for from in "$@"; do
if [[ -f "$from" ]]; then
cp -f "$from" "$dest"
echo "OK $(basename "$dest") <= $from"
return 0
fi
done
echo "SKIP (均未找到): -> $dest" >&2
return 1
}
# 操作与计算软件实例(一)
copy_if "$SRC/宇恒一号操作计算软件实例(一)/宣传片-封面.jpg" "$DST/video-calc-demo-1-cover.jpg"
copy_if "$SRC/宇恒一号操作计算软件实例(一)/宣传片.mov" "$DST/video-calc-demo-1.mov"
copy_first "$DST/video-calc-demo-1-cover.jpg" \
"$SRC/宇恒一号操作计算软件实例(一)/宣传片-封面.jpg" \
"$SRC/宇恒一号操作计算软件实例(一)/宇恒一号操作计算软件实例(一)-封面.jpg" || true
copy_first "$DST/video-calc-demo-1.mov" \
"$SRC/宇恒一号操作计算软件实例(一)/宣传片.mov" \
"$SRC/宇恒一号操作计算软件实例(一)/宇恒一号操作计算软件实例(一).mov" || true
# 操作与计算软件实例(二)
copy_if "$SRC/宇恒一号操作计算软件实例(二)/宇恒一号操作计算软件实例(二)-封面.jpg" "$DST/video-calc-demo-2-cover.jpg"
copy_if "$SRC/宇恒一号操作计算软件实例(二)/宇恒一号操作计算软件实例(二).mov" "$DST/video-calc-demo-2.mov"
copy_first "$DST/video-calc-demo-2-cover.jpg" \
"$SRC/宇恒一号操作计算软件实例(二)/宇恒一号操作计算软件实例(二)-封面.jpg" \
"$SRC/宇恒一号操作计算软件实例(二)/宣传片-封面.jpg" || true
copy_first "$DST/video-calc-demo-2.mov" \
"$SRC/宇恒一号操作计算软件实例(二)/宇恒一号操作计算软件实例(二).mov" \
"$SRC/宇恒一号操作计算软件实例(二)/宣传片.mov" || true
# AI Word
copy_if "$SRC/宇恒一号AIWord简介/宇恒一号AIWord简介-封面.jpg" "$DST/video-aiword-cover.jpg"
copy_if "$SRC/宇恒一号AIWord简介/宇恒一号AIWord简介.mov" "$DST/video-aiword.mov"
copy_first "$DST/video-aiword-cover.jpg" "$SRC/宇恒一号AIWord简介/宇恒一号AIWord简介-封面.jpg" || true
copy_first "$DST/video-aiword.mov" "$SRC/宇恒一号AIWord简介/宇恒一号AIWord简介.mov" || true
# 语音办公
copy_if "$SRC/宇恒一号语音办公实例/宇恒一号语音办公实例-封面.jpg" "$DST/video-voice-office-cover.jpg"
copy_if "$SRC/宇恒一号语音办公实例/宇恒一号语音办公实例.mov" "$DST/video-voice-office.mov"
copy_first "$DST/video-voice-office-cover.jpg" "$SRC/宇恒一号语音办公实例/宇恒一号语音办公实例-封面.jpg" || true
copy_first "$DST/video-voice-office.mov" "$SRC/宇恒一号语音办公实例/宇恒一号语音办公实例.mov" || true
# 办发票(目录名含全角逗号)
copy_if "$SRC/宇恒一号AI 全自动办发票/宇恒一号AI 全自动办发票-封面.jpg" "$DST/video-invoice-ai-cover.jpg"
copy_if "$SRC/宇恒一号AI 全自动办发票/宇恒一号AI 全自动办发票.mov" "$DST/video-invoice-ai.mov"
copy_first "$DST/video-invoice-ai-cover.jpg" "$SRC/宇恒一号AI 全自动办发票/宇恒一号AI 全自动办发票-封面.jpg" || true
copy_first "$DST/video-invoice-ai.mov" "$SRC/宇恒一号AI 全自动办发票/宇恒一号AI 全自动办发票.mov" || true
if command -v chmod >/dev/null 2>&1; then
chmod -R a+rX "$DST" 2>/dev/null || true