簡體   English   中英

如何搜索PDF文件並使用Powershell移動它們

[英]How to search in PDF files and move them using powershell

我在帶有幾個子文件夾的文件夾中有大量PDF文件。 在這堆文件中,我需要找到帶有特定字符串的文件,然后將其移動到新的目的地。

我已經為搜索過程編寫了一段很好的代碼,該代碼為我提供了所需的文件(創建者不勝感激)-現在,我需要幫助將此代碼與移動功能結合在一起。 以下代碼找到的所有文件都應移至新目的地。

$searchString = "text i need to find" 
$searchPath = "C:\test" 
$sql = "SELECT System.ItemPathDisplay, System.DateModified, " 
+ "System.Size, System.FileExtension FROM SYSTEMINDEX " 
+ "WHERE SCOPE = '$searchPath' AND FREETEXT('$searchstring')" 
$provider = "provider=search.collatordso;extended properties=’application=windows’;"  
$connector = new-object system.data.oledb.oledbdataadapter -argument $sql, $provider  
$dataset = new-object system.data.dataset  
if ($connector.fill($dataset)) { $dataset.tables[0] } 

輸出如下:

SYSTEM.ITEMPATHDISPLAY SYSTEM.DATEMODIFIED SYSTEM.SIZE SYSTEM.FILEEXTENSION
---------------------- ------------------- ----------- --------------------
C:\test\file.pdf       27.08.2019 19:14:57 17119       .pdf   

謝謝您的幫助!

我自己找到了解決方案。 對於任何有興趣的人。

注意:$ searchPath必須是運行腳本的計算機上的本地驅動器,因為Windows搜索需要對PDF文件進行索引。 為此,您可能必須安裝iFilter: https ://superuser.com/questions/402673/how-to-search-inside-pdfs-with-windows-search

$searchString = "Merkblatt für nüchtern eintretende Patienten" 
$searchPath = "Y:\" 
$targetPath = "\\Server\Path\folder"

$sql =  "SELECT System.ItemPathDisplay, System.DateModified, " + 
        "System.Size, System.FileExtension FROM SYSTEMINDEX " + 
        "WHERE SCOPE = '$searchPath' AND FREETEXT('$searchstring')" 
$provider = "provider=search.collatordso;extended properties=’application=windows’;"  
$connector = new-object system.data.oledb.oledbdataadapter -argument $sql, $provider  
$dataset = new-object system.data.dataset  
if ($connector.fill($dataset)) { 
   #$dataset.tables[0] 
   foreach ( $Row in $dataset.tables[0].Rows) {
      $targetFile = $Row[0] -replace "^Y:", $targetPath
      $targetSubfolder = Split-Path -Path $targetFile
      #write-host "Targetfile : $targetFile"
      #write-host "Moving: $($Row[0])"
      Move-Item -Path $($Row[0]) -Destination $targetPath -Force
   }
} 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM