从文件夹中复制最新文件,并通过PowerShell

时间:2016-06-16 07:52:20

标签: powershell

我尝试使用以下类型的命令从文件夹(.exe文件)复制最新文件:

Get-ChildItem "K:\" -File -include "*.exe" | Where-Object { $_. $_.LastWriteTime like "I don't know which parameter I should type here} Copy-Item -Path $files -Destination "C:\"

我不想将复杂的脚本与变量等一起使用(现在)

这是我的文件夹结构:

  • Release_OSInstaller_2015_CL287638x64_NoDB.exe
  • Release_OSInstaller_2015_CL287638x64.exe
  • Release_OSInstaller_2015_CL287337x64_NoDB.exe
  • Release_OSInstaller_2015_CL287337x64.exe

等等。基本上每天都有一个新的构建部署在文件夹中,从我将文件复制到我的机器(远程)。

我需要创建一个脚本来复制最新的版本,但我想用“NoDB.exe”参数排除所有文件。

2 个答案:

答案 0 :(得分:1)

不确定它是否是最快的方式(可能不是)。但是,如果你没有爬过庞大的文件系统

Copy-Item -Path (Get-ChildItem "K:\" -File -include "*.exe" |
Where Name -NotMatch '.*NoDB\.exe$' | Sort-Object -Descending
LastWriteTime | Select-Object -First 1) -Destination "C:\"

应该做的伎俩。 (我的第一个答案似乎是错的;)) 我完全错过了排除条件所以现在包括Martin Brandl Addition ^^

答案 1 :(得分:1)

除了answer from whatever之外,您还可以添加Where条件并跳过NoDB个文件:

Get-ChildItem "K:\" -Filter '*.exe' | 
    Where Name -NotMatch '.*NoDB\.exe$' | 
    sort LastWriteTime -Descending | 
    select -first 1 | 
    Copy-Item -Destination 'C:\'