2015-06-05 41 views
1

在一個目錄中,有一些文件沒有文件類型。所以他們沒有.xxx,我知道他們的類型,我想設置它。如何爲沒有任何類型的文件設置文件類型

如何獲取他們的列表並添加他們的類型,例如.srt

我能得到的所有文件的列表,文件類型,使用下面的命令:

Ls * | ? {$_.name -match '\.\w{3}$' } | FT 

但是,還是下面的命令並沒有得到期望的結果:

Ls * | ? {$_.name -match '[^\.\w{3}]$' } | FT 

另外,我需要一些幫助來重命名它們並添加它們的類型。

回答

2

如果你想設置一個文件夾中的所有文件的擴展名不帶擴展到.srt可以使用Rename-Item從管道這樣

請小心,這將改變擴展ALL文件,而在目錄的擴展您選擇.SRT

Get-ChildItem -Path C:\Path\To\Files | Where-Object -FilterScript {-not $_.Extension} | ForEach-Object { Rename-Item -Path $_.FullName -NewName ($_.FullName + ".srt") } 

說明這條管道下方

獲取所有文件

Get-ChildItem -Path C:\Path\To\Files 

所在的文件不必須擴展

Where-Object -FilterScript {-not $_.Extension} 

對於每一個文件的目錄

ForEach-Object { } 

重命名項目($ _。FullName)+我們選擇的擴展名(.srt)

Rename-Item -Path $_.FullName -NewName ($_.FullName + ".srt") 
+0

所以我們也有'Extension'屬性!我試圖通過正則表達式來解決這個問題!我癡迷於正則表達式,並試圖用它們設置文件擴展名,但字符串連接完成這項工作。 – Akbari

+2

如果你想知道哪些屬性可用於對象,你可以使用'Get-Member'來找出你可以使用哪些其他屬性來運行'Get-ChildItem | GET-Member' – Bluecakes

相關問題