powershell - 在不同的子文件夹中运行 ps 脚本
问题描述
我有一个脚本,我想在同一目录中具有相同结构的多个子文件夹中运行。我有变量 $pdfPath、$pdfoutpath 和 $newFolder。如何更改变量以查看 folderA\input、folderB\input、folderc\input 等?我试过使用通配符,但没有奏效。我不能只使用 'C:\path*' 因为我需要分离输出。
感谢您的任何输入:)
$pdfPath = 'C:\path\folderA\input'
$pdfoutPath = 'C:\path\folderA\output'
$newFolder = 'C:\path\folderA\Complete'
$pdfFile = Join-Path $pdfPath '*.pdf'
$SetsOfPages = 1
$Match = 'NumberOfPages: (\d+)'
$NumberOfPages = [regex]::match((pdftk $pdfFile dump_data),$Match).Groups[1].Value
"{0,2} pages in {1}" -f $NumberOfPages, $pdfFile
for ($Page=1;$Page -le $NumberOfPages;$Page+=$SetsOfPages){
$File = Get-Item $pdfFile
$Range = "{1}" -f $page,[math]::min($Page+$SetsOfPages-1,$NumberOfPages)
$OutFile = Join-Path $pdfoutPath ($File.BaseName+"_$Range.pdf")
"processing: {0}" -f $OutFile
pdftk $pdfFile cat $Range output $OutFile
}
Get-ChildItem $pdfPath '*.pdf' -Recurse | foreach {
$new_folder_name = Get-Date $_.LastWriteTime -uformat %V
$des_path = "${newFolder}\${new_folder_name}"
if (test-path $des_path){
move-item $_.fullname $des_path
} else {
new-item -ItemType directory -Path $des_path
move-item $_.fullname $des_path
}
}
解决方案
这是从输入路径计算其他路径的一种方法...
$InputPathList = @(
'C:\path\folder_A\input'
'C:\path\folder_B\input'
'C:\path\folder_C\input'
)
$OutputRelPath = 'Output'
$CompleteRelPath = 'Complete'
foreach ($IPL_Item in $InputPathList)
{
$Root = Split-Path -Path $IPL_Item -Parent
$OutPath = Join-Path -Path $Root -ChildPath $OutputRelPath
$CompletePath = Join-Path -Path $Root -ChildPath $CompleteRelPath
$IPL_Item
$Root
$OutPath
$CompletePath
'=' * 30
}
输出 ...
C:\path\folder_A\input
C:\path\folder_A
C:\path\folder_A\Output
C:\path\folder_A\Complete
==============================
C:\path\folder_B\input
C:\path\folder_B
C:\path\folder_B\Output
C:\path\folder_B\Complete
==============================
C:\path\folder_C\input
C:\path\folder_C
C:\path\folder_C\Output
C:\path\folder_C\Complete
==============================
推荐阅读
- ios - 如何将元数据永久保存到 UIImage?
- php - 如何在 PHP 中获取 OAuth 2.0 令牌?
- python - AudioSegment.from_file 由于某种原因被覆盖?
- javascript - 为什么switchMap中的间隔停止发射值
- c - 如何在计数中包含文件的最后一个单词
- html - 为什么保证金不适用于particles.js背景
- asp.net-core-mvc - asp.net core mvc 是否提供标准的错误响应格式?
- python - 选择系列中的某些值作为标题
- kubernetes - 共享 pod 中容器的 CPU 限制
- r - 从随机森林构建的部分依赖图中提取绘图数据