我正试图将文件名末尾的奇数文件从一个文件夹移动到另一个文件夹,但它似乎不起作用。我试过使用if语句和for循环没有用处。如果能给点指点,我将不胜感激。我的尝试如下…
$srcpath = "C:FolderSubFolder3"
$dstpath = "C:FolderSubFolder2"
Get-ChildItem -File -Recurse -Path $srcpath |
ForEach-Object {
if($_.Name -match '*1.txt', '*3.txt', '*5.txt', '*7.txt', '*9.txt') {
Move-Item -Path $_.FullName -Destination $dstpath
}
}
$srcpath = "C:FolderSubFolder3"
$dstpath = "C:FolderSubFolder2"
$files = $srcpath
foreach ($file in $files) {
if ($file -like '*1.txt', '*3.txt', '*5.txt', '*7.txt', '*9.txt') {
Move-Item -Destination $dstpath
}
}
我相信-match
操作符只有在字符串中找到所有匹配项时才返回true,而不是只找到其中一个。
如果文件名只包含一个数字,您可以尝试这样做。如果文件名中有其他位置的数字,此操作将失败。
$srcpath = "C:FolderSubFolder3"
$dstpath = "C:FolderSubFolder2"
Get-ChildItem -File -Recurse -Path $srcpath |
ForEach-Object {
# look for a digit
if($_.Name -match '[d]') {
# is that digit odd?
if([int]($Matches[0]) % 2 -eq 1) {
Move-Item -Path $_.FullName -Destination $dstpath
}
}
}