2015-09-25 121 views
0

中的所有當前.pdf文件我需要做的是將test.pdf文件複製爲當前已經在特定目錄中的.pdf文件。將測試.pdf文件複製並重命名爲目錄

例如,該目錄具有xyz.pdf,rgh.pdf,bne.pdf等

檢驗.pdf需要被重新命名爲xyz.pdf,rgh.pdf,bne.pdf等 所有的.pdf文件應該有完全相同的內容,這就是爲什麼我需要將test.pdf重命名爲目錄中的每個.pdf文件。

這是我到目前爲止嘗試過的。它將測試文件「V2500SB.pdf」複製到正確的目錄。目錄中有兩個.pdf文件,但不會將「V2500SB.pdf」重命名爲目錄中的文件。它在運行第一個文件後也停止。有任何想法嗎?

try 
{ 
$PDFDir = "D:\V2500Test\*" 
$items = Get-ChildItem -Path ($PDFDir) 
$ErrorActionPreference= 'continue' 
$NewPDFDir = "D:\V2500SB.pdf" 
$NewPDF = "V2500SB.pdf" 

if (Test-Path -Path "$PDFDir") 
{ 

# Code for directory not empty 
    # enumerate the items array 
    foreach ($item in $items) 
    { 
    Write-Host $item.Name 
    Copy-Item -Path $NewPDFDir -destination $PDFDir 
    Rename-Item $NewPDFDir + $NewPDF $PDFDir + $item -Force 

    } 
} 
else 
{ 
Write-Host "No file to move" 
exit 
} 

} #end of try 
    catch #Catch any fatal errors and send an email with description 
    { 
    $ErrorMessage = $_.Exception.Message 
    $FailedItem = $_.Exception.ItemName 
    $ErrorName = $_.Exception.GetType().FullName 

    $ExceptionBody = @" 
    Exception Name: $ErrorName 
    Exception Type: $FailedItem 
    Exception Message: $ErrorMessage 
"@ 

    } # end of catch  
     finally 
     { 
     } 
+0

註釋掉catch塊,看看你的腳本是否失敗並報錯。 –

+0

您是否正在嘗試在與另一個文件夾中的文件具有相同名稱的文件夾中創建一組全新的文件?或者你是否試圖替換現有文件夾中每個文件的內容? –

回答

0

我不清楚你想要做什麼,但我認爲這是兩件事情之一:

您是否試圖用'test.pdf'的內容替換文件夾中所有文件的內容?如果是這樣的話,你只需要使用拷貝項設置爲原始文件名的目標路徑:

$PDFDir = "D:\V2500Test" 
$items = Get-ChildItem -Path $PDFDir 

$NewPDF = "V2500SB.pdf" 

if(Test-Path -Path $PDFDir) 
{ 
    foreach ($item in $items) 
    { 
     Write-Host $item.Name 
     Copy-Item $NewPDF -Destination $item.FullName 
    } 
} 

或者,你想,以填補新的文件夾有文件的名稱從另一個文件夾中的文件,但所有的內容都是'test.pdf?在這種情況下,答案是相似的,但你必須建立一個新的路徑(使用聯接路徑):

$PDFDir = "D:\SourceFolder" 
$items = Get-ChildItem -Path $PDFDir 
$NewPDF = "V2500SB.pdf" 

$PDFDir2 = "D:\V2500Test" 

if(Test-Path -Path $PDFDir2) 
{ 
    foreach ($item in $items) 
    { 
     Write-Host $item.Name 
     Copy-Item $NewPDF -Destination (Join-Path $PDFDir2 -ChildPath $item.Name) 
    } 
} 

無論哪種方式,你不需要做拷貝項,然後重新命名 - 項目;複製項目可以一步處理。

+0

謝謝@ E.Z。哈特第一個例子就是我想要做的。 –

0

你有你的重命名命令太多的東西......

重命名,項目$ NewPDFDir + $ NewPDF $ PDFDir + $項目

這是你想要什麼?

Rename-Item D:\V2500SB.pdfV2500SB.pdf D:\V2500Test\*whateverWasFound.pdf -Force 

而且它的拷貝只有一次的原因是因爲你複製使用相同的源和目標每次...

我強烈建議嘗試與價值的命令,看看什麼是真正回事...

相關問題