将同一文件复制到多个目标

问题描述

我想使用一个脚本来将文件复制到多个目标,该脚本通过目录进行过滤并选择$ File_path中的最新文件,然后更改其名称并将其复制到$ destination,我正在使用的脚本是这样的:

 $File_path = "C:\TEMP\export\liste\Text_Utf8\"
 $destination = "C:\TEMP\export\C7E001"
get-childitem -path $File_path -Filter "Ges?*.txt" | 
    where-object { -not $_.PSIsContainer } | 
    sort-object -Property $_.CreationTime | 
    select-object -last 1  | copy-item -Destination (join-path $destination "FRER3000CCFETES01_IN.DEV")

这仅将其复制到一个位置,是否有改进方法以将同一文件复制到多个位置?我见过这个thread,但看起来不一样。

其他位置如下:

C:\ TEMP \ export \ C7P001 C:\ TEMP \出口\ C7F001 C:\ TEMP \出口\ C7S001 等等。

谢谢。

解决方法

您可以使用foreach对象循环

$File_path = "C:\TEMP\export\liste\Text_Utf8\"
$destination = "C:\TEMP\export\C7E001","C:\TEMP\export\C7P001","C:\TEMP\export\C7F001","C:\TEMP\export\C7S001"
$Files = get-childitem -path $File_path -Filter "Ges?*.txt" | 
    where-object { -not $_.PSIsContainer } | 
    sort-object -Property $_.CreationTime | 
    select-object -last 1 
$Destination | Foreach-Object {copy-item $Files -Destination (join-path $_ "FRER3000CCFETES01_IN.DEV")}
,

尽管我的回答与Peter's answer并没有很大不同,但这使用LastWriteTime属性获取最新文件,并使用文件的FullName属性复制到{{ 1}} cmdlet。

Copy-Item

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...