PowerShell 批量复制文件

需求:给定文件名列表 list.txt,每行一个;给定源文件 source.jpg。现在需要把 source.jpg 批量复制为 <filename_in_list.txt>.jpg

脚本

下述脚本保存为 copy.ps1,执行 .\copy.ps1

$scriptPath = Split-Path -Parent $MyInvocation.MyCommand.Path
$sourceFile = Join-Path $scriptPath "source.jpg"
$listFile = Join-Path $scriptPath "list.txt"

if (-not (Test-Path $sourceFile)) {
    Write-Host "Error: Can't find source.jpg"
    exit 1
}

if (-not (Test-Path $listFile)) {
    Write-Host "Error: Can't find list.txt"
    exit 1
}

$fileNames = Get-Content $listFile

foreach ($name in $fileNames) {
    $name = $name.Trim()
    if ([string]::IsNullOrEmpty($name)) {
        continue
    }
    $destFile = Join-Path $scriptPath "$name.jpg"
    
    try {
        Copy-Item -Path $sourceFile -Destination $destFile -ErrorAction Stop
        Write-Host "Created: $name.jpg"
    } catch {
        Write-Host "Error: Creating $name.jpg - $_"
    }
}

Write-Host "Done"

添加新评论