2014-01-14 142 views
0

我有幾個問題。我有一定的二進制文件的文件夾中...使用PowerShell備份某個文件夾中的某些文件

F:\program files\application\Client\ 

我只想要複製的最新DLL的在有名稱的某些特定的詞組。可以說「MVCsite」。我知道你可以使用Get-ChildItem -Filter和過濾器參數來獲得擴展名爲.dll的子項,但是有沒有辦法使用特定的關鍵字來查找特定的文件,或者我將不得不從字面上複製文件列表的目錄並將其移動到備份文件夾?有沒有一個快速和骯髒的命令來做到這一點?正如你所看到的,我是Powershell的新手,但我學得很快。

+0

它只有一個關鍵字,或者可以有多個關鍵字? –

+0

可以有多個。 – SoftwareSavant

回答

1

gci -path $path -filter "*.dll" | where {$_.Name -match "Keyword1|Keyword2|etc"}

+0

gci是什麼命令? – SoftwareSavant

+0

'Get-ChildItem',和你發佈的一樣:)它也可以用作'ls'或'dir' –

+1

「-contains」將不起作用。我冒昧編輯你的答案。我希望你不介意。另外,似乎可以有多個關鍵字,所以我也把它們放在了一起。 –

0

只需使用通配符在-Path參數:

Copy-Item F:\program files\application\Client\*MVCsite*.dll X:\DestinationDir 

這將所有文件複製F:\ Program Files文件\程序\客戶端\名稱中包含字符串「MVCsite」並具有擴展名「.dll」。那是你想要完成的嗎?如果沒有,請澄清。

+0

我想技術上我可以把一個數組放到那個-Path參數中如果我新建了所有我想複製的文件。 – SoftwareSavant

+0

我不理解評論。是的,你可以這樣做,但把這個陣列放在一起將是相當乏味的。我認爲這個想法是複製所有名稱中具有特定擴展名和特定字符串的文件。你是否想說你認爲這個解決方案要求你單獨列出所有的文件名?它沒有。這一行復制名稱中包含「MVCsite」的所有*文件,並一次性複製「.dll」擴展名。 –

+0

我知道你的意思,我想我有點'大聲思考',我想知道是否有某種折衷,當我只是列出所需的所有文件時。但你的回答也很好。 – SoftwareSavant

相關問題