Powershell脚本,用于从计算机列表中搜索文件类型,然后将结果复制到以计算机命名的目录中

Powershell脚本,用于从计算机列表中搜索文件类型,然后将结果复制到以计算机命名的目录中,powershell,Powershell,以下是我迄今为止所做的工作。它正在搜索计算机列表,将所有计算机中的所有文件放在一个文件夹中 我正在尝试将找到的文件放在一个以它们来自的机器命名的文件夹中。有什么想法吗 获取内容C:\computers.txt | Foreach对象{ $ComputerName=$\u 获取子项“\\$ComputerName\c$\Documents and Settings\***\desktop”、“\\$ComputerName\c$\Documents and Settings\***\My Docu

以下是我迄今为止所做的工作。它正在搜索计算机列表,将所有计算机中的所有文件放在一个文件夹中

我正在尝试将找到的文件放在一个以它们来自的机器命名的文件夹中。有什么想法吗

获取内容C:\computers.txt | Foreach对象{
$ComputerName=$\u
获取子项“\\$ComputerName\c$\Documents and Settings\***\desktop”、“\\$ComputerName\c$\Documents and Settings\***\My Documents”-包括*.xls*、*.doc*、*.txt、*.pdf、*.jpg-递归-强制
}|复制项目-目的地\\目的地\共享

在循环中移动
复制项
,并添加一条语句以创建目标文件夹:

$extensions = '*.xls*', '*.doc*', '*.txt', '*.pdf', '*.jpg', '*.pub'

Get-Content C:\computers.txt | % {
  $ComputerName = $_

  $dst = "\\destination\share\$ComputerName"
  $src = "\\$ComputerName\c$\Documents and Settings\**\desktop",
         "\\$ComputerName\c$\Documents and Settings\**\My Documents"

  New-Item -ItemType Directory $dst

  Get-Childitem $src -Include $extensions -Recurse -Force |
    Copy-Item -Destination $dst\
}

这太棒了!谢谢不过有一个问题,PS告诉我“参数列表中缺少参数”。在.xls之后的逗号上,这里是脚本的输出:第1行char:21+$extensions=.xls、.doc、*.txt、*.pdf、*.jpg+~参数列表中缺少参数CategoryInfo:ParserError:(:)[],ParentContainerErrorRecordException+FullyQualifiedErrorId:MissingArgument@user3407887:将扩展模式置于引号中。看到更新的答案。只是注意到,当我复制和粘贴的报价没有进行。我很抱歉忽略了这一点,明白了。它给我带来了另一个错误:术语“\\mycomputer\c$\users\myname\desktop\$ComputerName”不能识别为cmdlet、函数、脚本文件或可操作程序的名称。在$dst变量路径周围加了一些引号,这就成功了$dst=“\\destination\share\$ComputerName”再次感谢!如果可能的话,我还有最后一个请求要添加到这个脚本中。我的目标是从机器列表中备份特定的文件类型。这些机器上有大约10-20个剖面。是否可以将这些文件从它们来自的配置文件中排列到计算机名目录下的目录中?例如,在已创建的计算机名目录下创建配置文件名目录,然后将目标文件转储到相应的文件夹中。示例:\\server\share\computername1\profile1\document.doc\\server\share\computername2\Profile2\document.doc可能:是。但是对你原来的问题有了实质性的改变,所以有必要提出一个新的问题。