用于根据源列表移动文件的 Powershell 脚本 (.txt

2024-05-07

我的目录中有数千个文件(.pdf、.xls、.doc),它们都有相似的命名约定(“类型”始终是常量字符串,即:账单或发票);

帐户名称_帐号_type.pdf

帐户名称_ 帐号_type.doc

帐户名称_帐号_type.xls

手头的任务是接收帐户名和帐号的随机列表(“类型”始终是常量,即:帐单、发票、运输或订单,它们的格式各不相同)并将它们从目录 A 移至目录 B。我可以将列表放入 .csv 文件中以匹配账户名_账户号_type.

我一直在尝试创建一个 powershell 脚本来引用 accountname_accountnumber 并将这些项目从目录 A 移动到目录 B,但没有成功。

SAMPLE我发现了一些更简单的东西,但我希望能够编辑它以创建新的目标,并且如果从此列表中找不到文件则不会停止。另外,如果我可以从 .txt 列表中选择这个选项,我认为这会比粘贴所有内容更容易。

$src_dir = "C:\DirA\"
$dst_dir = "D:\DirB-mm-dd-yyyy\" #This code requires the destination dir to already be there and I need to have the code output a new Directory, it could output based on date script run that would be amazing

$file_list = "accountname1_accountnumber001_type", #If I can select to import csv here
"accountname2_accountnumber002_type",
"accountname3_accountnumber003_type",
"accountname4_accountnumber004_type",
"accountname5_accountnumber005_type",
"accountname6_accountnumber006_type"

foreach ($file in $file_list) #This errors out and stops the script if the file is not located in source and I need to have the script continue and move on, with hopefully an error output
{
  move-Item $src_dir$file $dst_dir
}

它们可以是任何文件格式,我试图让代码仅匹配帐户名和帐户号,因为这两个将定义确切的客户。无论是发票、账单还是运输并不重要,因为他们希望移动与该客户关联的所有文件。

例如,每个帐户可能有 4 个,并且类型格式可能与 pdf、doc 和 xls 不同,我需要根据前两个指示符(帐户名称、帐户编号)移动所有文件。

alice_001_invoice.pdf

alice_001_billing.doc

alice_001_shipping.pdf

alice_001_order.xls

乔治_245_发票.pdf

乔治_245_billing.doc

乔治_245_shipping.pdf

乔治_245_order.xls

Bob_876_invoice.pdf

Bob_876_billing.doc

Bob_876_shipping.pdf

Bob_876_order.xls

Horman_482_invoice.pdf

Horman_482_billing.doc

Horman_482_shipping.pdf

Horman_482_order.xls

CSV:

账户名、账号

爱丽丝,001

乔治,245

Bob,876

霍曼,482


这个怎么样 :

$CurrentDate = [DateTime]::Now.ToString("MM-dd-yyyy")
$DestinationDir = "D:\DirB-$CurrentDate"
New-Item $DestinationDir -ItemType Directory -ErrorAction SilentlyContinue

$AccountToMove = Import-CSV $CSVPath
Foreach ( $Account In $AccountToMove ){
    $FilePattern = "*$($Account.AccountName)*$($Account.AccountNumber)*"
    ls $SourceDir | Where Name -like $FilePattern | Move-Item -Destination $DestinationDir
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用于根据源列表移动文件的 Powershell 脚本 (.txt 的相关文章

随机推荐

  • Windows 注册表中的 DefaultConnectionSettings 值的格式是什么?

    Windows 注册表项 HKCU Software Microsoft Windows CurrentVersion Internet Settings Connections 包含一个名为的二进制值DefaultConnectionSe
  • if 语句中哪个条件为真

    说我有一个if声明本身 if condition1 condition2 condition3 do something 当我们进入循环时 是否可以找出这 3 个条件中哪一个为 true 是的 您可以使用以下命令单独检查每一项 if con
  • 使用express-fileupload上传文件

    我正在尝试使用express fileupload上传文件 但没有成功让它工作 我可以让文件 在本例中为图像 上传 因为我可以让控制台显示使用正确文件夹上传的图像 启动 js router get upload function req r
  • C# 将表导出到 Excel

    如何使用以下方法将此数据表导出到 Excel Microsoft Office Interop Excel 我有这个代码 女巫抓取主表中的所有数据 并希望将其导出到 Excel 以获得更好的视图 不想使用数据网格 我认为有很多关于这个主题的
  • 如何创建随机矩阵?

    我想创建一个随机矩阵 如 100 50 25 22 75 195 我的代码是 n 1 r 2 e 3 sup for i in range n sup1 for c in range r sup0 list random randint 2
  • 如果按下子视图的按钮如何取消 UIGestureRecognizer

    我正在努力从手势识别器中获得我想要的行为 特别是在其他手势已触发时取消某些手势 我有一个滚动视图设置为分页和每个页面中的多个子视图 我添加了一个触摸手势识别器 如果用户点击页面的右侧或左侧 则可以滚动到下一页或上一页 Add a gestu
  • AngularJS 计数器计数到目标数

    我是 Angular 的新手 想在 JQuery 中实现同样简单的函数扩展 但使用指令 据我所知 这就是应该如何完成的 有人知道准备实施吗 我的搜索最终只找到了 JQuery 解决方案 但我不知道如何将其转换为 Angular 这就是我需要
  • python函数返回函数[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何用php将文件内容转换为字节数组

    我想用PHP将上传的文件保存 插入 到数据库中 数据库字段的类型是varbinary 最后 我想要获得 VarBinary 输出 的内容 就像在 C 中读取文件然后将其存储在字节数组中并将数组插入到 VarBinary 中一样 我与数据库的
  • 在 Linux (CentOS 5.4) 中运行 jNotify 时出现问题

    我正在尝试在 centos 5 4 64 位 框中设置 jnotify 来监视目录中的文件更改 我按照说明将 libjnotify so 放入 java 库路径中 这是我的条目 java Xms64m Xmx2048m Djava libr
  • 使用mongodb+srv配置Mongo

    我在 docker 上启动 mongo 所以默认主机 localhost port 27017 用户名 root密码 example 现在我想通过连接字符串进行连接 mongodb srv root example localhost si
  • woocommerce 自定义结账字段添加费用以订购 ajax

    我试图在结账时在订单总额中添加自定义费用 我在 woocommerce 中添加了一个复选框 add action woocommerce after checkout billing form add box option to check
  • 如何用另一个子字符串替换子字符串(按索引 from..to)

    如何用其他字符串将某个字符中的子字符串替换为另一个字符 first 4 last 11 replacement show me the money replace part first last replacement gt show mo
  • 为 R 的 read_excel 包中的特定列指定列类型

    我的 Excel 文件中有大约 20 列 我正在使用 read excel 将它们作为数据帧读入 R 一列被视为 Posix 我希望它是文本 我知道提及所有列类型的类型可以解决此问题 但我想看看是否可以提及列的名称或指定仅该列应被视为文本的
  • 模式匹配中使用的抽象类型的类型不匹配

    此代码编译时出现错误 def f1 T e T T e match case i Int gt i case b Boolean gt b type mismatch found i type with underlying type In
  • 如何解决 Flutter 中的操作系统错误:权限被拒绝,errno = 13

    我想将我的文档文件存储到 存储 模拟 0 下载 我收到这个错误 未处理的异常 FileSystemException 无法打开文件 路径 storage emulated 0 Download file pdf 操作系统错误 权限被拒绝 e
  • 未设置文件名时读取 SharedPreferences

    当您在 Android 上创建 PreferenceScreen 时 您的应用程序会为设置创建默认的 SharedPreferences 文件 我想阅读这个名字 或者在不指定名字的情况下获得参考 目前我使用 SharedPreference
  • 如何设置和获取Redis中存储的对象?

    我试图在 redis 中存储一个对象 当我获取该对象时 它似乎不起作用 I tried u User new u name blankman redis set test u x redis get test x name error 我想
  • Jquery post 无法在 IE 8 或更早版本中工作

    所以这个功能在除IE以外的所有浏览器中都有效 我只能访问 IE 8 所以不能说新版本是否有效 我无权访问 PHP 或它如何调用 SQL DB 所以我不能肯定地说这是 JavaScript IE 中永远不会触发警报 post http foo
  • 用于根据源列表移动文件的 Powershell 脚本 (.txt

    我的目录中有数千个文件 pdf xls doc 它们都有相似的命名约定 类型 始终是常量字符串 即 账单或发票 帐户名称 帐号 type pdf 帐户名称 帐号 type doc 帐户名称 帐号 type xls 手头的任务是接收帐户名和帐