Powershell查找并移动文件

问题描述 投票:0回答:1

我有一个很长的查找和移动操作列表,我想通过用2个短变量替换以下2个长命令来减少文件。

短变量:

$f = 'Get-ChildItem -Recurse -Filter'
$m = 'Move-Item -Force -Verbose -Destination V:\MSL\_pdf\'

长命令:

Get-ChildItem -Recurse -Filter GAS*.pdf | Move-Item -Force -Verbose -Destination V:\MSL\_pdf\GAS
Get-ChildItem -Recurse -Filter GCA_00*.pdf | Move-Item -Force -Verbose -Destination V:\MSL\_pdf\GCA\GCA_00
Get-ChildItem -Recurse -Filter GCA_01*.pdf | Move-Item -Force -Verbose -Destination V:\MSL\_pdf\GCA\GCA_01

这不起作用:

$f GAS*.pdf | $m`GAS
$f GCA_00*.pdf | $m`GCA\GCA_00
$f GCA_01*.pdf | $m`GCA\GCA_01
powershell find move
1个回答
0
投票

正如@Lee在评论中所说,你应该使用函数:

function GetAndMove($files, $dest)
{
   $dest = "V:\MSL\_pdf\$($dest)"
   Get-ChildItem -Recurse -Filter $files | Move-Item -Force -Verbose -Destination $dest
}

# Now call the function
GetAndMove "GAS*.pdf" "GAS"
GetAndMove "GCA_00*" "GCA\GCA_00"
GetAndMove "GCA_01*" "GCA\GCA_01"

...

© www.soinside.com 2019 - 2024. All rights reserved.