在powershell脚本中将文件从一个位置复制到另一个位置,另外还要检查某些值

时间:2013-02-21 17:11:45

标签: file powershell directory

所以我在其中有文件夹,在某个位置

C:\Users\ainfowara\Desktop\testfiles

所以我想将这些文件移到这个位置

C:\Users\ainfowara\Desktop\destinationTestfiles

“testfiles”有这种格式的文件txt.*.test.*所以基本上我想在我移动文件之前检查他们有两个主要的东西(txt)和(test)第三部分。

有人可以帮助我,如何在powershell脚本中执行此操作

我知道我可以这样做,设置文件夹路径

path_src= C:\Users\ainfowara\Desktop\testfiles
path_dst= C:\Users\ainfowara\Desktop\destinationTestfiles

提前感谢您的帮助

1 个答案:

答案 0 :(得分:13)

如果testfiles中没有子文件夹(至少你需要文件),试试这个:

$src = "C:\Users\ainfowara\Desktop\testfiles"
$dst = "C:\Users\ainfowara\Desktop\destinationTestfiles"

Get-ChildItem $src -Filter "txt.*.test.*" | Move-Item -Destination $dst -Force

如果您在源路径的子文件夹中有文件,请尝试以下操作:

$src = "C:\Users\ainfowara\Desktop\testfiles"
$dst = "C:\Users\ainfowara\Desktop\destinationTestfiles"

Get-ChildItem $src -Filter "txt.*.test.*" -Recurse | % {
    #Creates an empty file at the destination to make sure that subfolders exists
    New-Item -Path $_.FullName.Replace($src,$dst) -ItemType File -Force
    Move-Item -Path $_.FullName -Destination $_.FullName.Replace($src,$dst) -Force
}

请注意,如果您的文件名包含方括号[ ],则需要另一个脚本(已知PS错误)。