我想在powershell中編寫腳本來批量轉換視頻文件。Powershell中的測試路徑行爲
我打算使用它的方式是去一些文件夾充滿視頻文件並運行它。它使用可以在「命令行模式」(命名爲手剎)中運行的轉換程序,並在文件擴展名之前將轉換後的文件與「-android」附加在一起。例如,如果我在文件夾中有一個名爲video1.avi的文件,在運行腳本之後,該文件夾有2個文件:video1.avi和video1-android.avi
我想這樣做的原因是這樣的我可以檢查每個視頻文件是否存在轉換後的版本(將名稱附加-android)。如果是這樣,跳過該文件的轉換。
而這正是我要加倍努力的地方。問題是Test-Path的行爲(我用來測試文件是否存在的cmdlet)。
會發生什麼情況是,如果視頻文件有一個「不尋常的」名稱(例如在我的情況下,它的視頻[長] .avi)如果您嘗試檢查該文件是否存在,Test-Path將始終返回False。
爲您測試這樣的一個簡單的方法是,例如該做的事:
轉到一個空文件夾, 運行記事本創建一個文件「[」在它的名字:
¬epad test[x].txt
保存文件
然後做到這一點:
Get-ChildItem | ForEach-Object {Test-Path $_.FullName}
它確實不是真的!它應該是對的?那麼它不會如果該文件的名稱中有[[「(我沒有檢查任何其他特殊字符)
我意識到,如果你逃脫」[「和」]「它的作品
Test-Path 'test`[x`].txt'
返回true。
我該如何解決這個問題?我希望能夠:給定文件的BaseName,將其附加到「-android.avi」並檢查是否存在具有該名稱的文件。
感謝, 瑞
謝謝,那正是我所需要的 – Rui 2009-11-25 23:12:29