powershell - Powershell 查找和移动文件
问题描述
我有一长串查找和移动操作,我想通过用 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
解决方案
正如@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"
...
推荐阅读
- python - Python / psycopg2:cursor.fetchall() 在某些表上返回空列表
- javascript - 使用 AJAX 调用和 history.pushState
- sql - Postgres 在预期时没有达到索引
- php - 在 PHP 中创建 json 数据表不起作用(json_decode)
- r - R,将图像保存为加密文件
- c# - 如何使用 LINQ 获取第一个数组中的每个元素和第二个数组中的每个元素的总和
- reactjs - 使用 Axios 在反应中进行错误处理的最佳方法是什么?
- android - Android 12 支持的 AVIF 图像文件格式未在 ImageView Android 中加载
- android - 如何使用 Jetpack Compose 创建全局状态?
- proteus - Proteus,封闭电路组件并仅暴露输入和输出引脚