You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写引用文本列表、仅复制非列表内文件的Powershell脚本

实现方案

完整可运行脚本

你只需要修改前3个变量的路径为你自己的实际路径即可运行:

# 配置路径:替换为你自己的实际路径
$nameListPath = "C:\path\to\your\filename_list.txt"  # 之前存储文件名的文本文档路径
$sourceDir = "C:\path\to\source\folder"              # 要扫描提取文件的源目录
$targetDir = "C:\path\to\target\folder"              # 复制到的目标目录

# 读取排除文件名列表,自动处理空格、空行、重复项
$excludeFileNames = Get-Content -Path $nameListPath | ForEach-Object { $_.Trim() } | Where-Object { $_ -ne "" } | Select-Object -Unique

# 遍历源目录文件,复制不在排除列表内的文件
Get-ChildItem -Path $sourceDir -File | ForEach-Object {
    if ($excludeFileNames -notcontains $_.Name) {
        Copy-Item -Path $_.FullName -Destination $targetDir -Force
    }
}

可选调整说明

  • 如需递归扫描源目录下所有子文件夹的文件,给Get-ChildItem命令添加-Recurse参数即可
  • 不需要覆盖目标目录的同名文件时,删除Copy-Item后的-Force参数
  • 首次运行可先替换Copy-Item行为为Write-Host "待复制文件:$($_.Name)",预览符合预期后再执行实际复制操作
  • 脚本默认适配Windows文件系统的大小写不敏感规则,不需要额外处理文件名大小写差异

内容的提问来源于stack exchange,提问作者Todd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 19:36:03