1

所以我在某个位置有一个包含文件的文件夹

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

在此先感谢您的帮助

4

1 回答 1

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 错误)。

于 2013-02-21T17:43:59.547 回答