首页 > 解决方案 > 在不同的子文件夹中运行 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 
    }
}

标签: powershell

解决方案


这是从输入路径计算其他路径的一种方法...

$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
==============================

推荐阅读