2016-10-06 57 views
-1

我正在嘗試編寫一個PowerShell腳本,它將循環訪問C:\驅動器中的一個目錄,並將文件擴展名解析爲另一個腳本以供使用。解析目錄列表並傳遞給另一個腳本?

基本上,目錄列表的輸出應該可以被逐個解析爲另一個腳本。該腳本是一個編譯腳本,它需要將一個參數(參數)解析爲它以便編譯特定的模塊(文件名)。

代碼:

Clear-Host $Path = "C:\SandBox\" 
Get-ChildItem $Path -recurse -force | ForEach { If ($_.extension -eq ".cob") 
    { 
     Write-Host $_.fullname 
    } 
} 
If ($_.extension -eq ".pco") 
{ 
    Write-Host $_.fullname } 
} 
+0

到目前爲止,你嘗試過什麼? – Atf

+0

嗨有......我在網上發現了一些代碼,看起來像在做我在問什麼,但它確實與我無關。 –

+0

我發現這塊邏輯: –

回答

-1
Clear-Host 
$Path = "C:\Sandbox\" 
$Items = Get-ChildItem $Path -recurse -Include "*.cob", "*.pco" 

從您的亂碼猜你想回到那些.cob文件和.pco文件擴展名的列表。你可以使用上面的代碼來收集這些代碼。

$File = $Items.name 
$FullName = $items.fullname 
Write-Host $Items.name 
$File 
$FullName 

添加上面的行將允許您以各種方式顯示它們。你可以選擇一個滿足你的需求的環節,然後循環遍歷它們。

作爲一個規則,它不是一個代碼寫給你的地方,但你已經嘗試添加一些問題,所以我看了一下。有時你只是想要朝正確的方向輕推。

+0

嗨,夥計們。感謝您的反饋。我在PowerShell的終端中試過這個,但是由於某些原因或其他原因不起作用,並且輸出$ Items.name既不是$ Items.fullname,而是輸出$ Items(有完整的pat),這實際上並不是我想要的。請任何幫助。 –

0

您不需要將輸出解析爲文本,這已過時。

這裏的東西可能會爲你工作:

# getmyfiles.ps1 

Param([string])$Path = Get-Location) 

dir $Path -Recurse -Force | where { 
    $_.Extension -in @('.cob', '.pco') 
} 

# this is another script that calls the above 

. getmyfile.ps1 -Path c:\sandbox | foreach-object { 
    # $_ is a file object. I'm just printing its full path but u can do other stuff eith it 
    Write-host $_.Fullname 
} 
+0

這不起作用。給我一個錯誤:參數聲明是一個以逗號分隔的帶有可選初始化表達式的變量名列表。 在線:1個字符:16 –

相關問題