2017-01-24 35 views
0

我知道這個問題已經有人問過了,但我會再問一次。 有人可以告訴我如何在CMD批量重命名和升序。我已經嘗試在PowerShell中重命名,但無濟於事。它只讓我使用一次,我需要重命名另一個文件夾文件,但無濟於事。它沒有讓它重命名另一個文件夾中的文件。這是我在PowerShell中使用的代碼:在CMD中批量升級文件並按升序重命名

$i = 1 
Get-ChildItem *.mkv | %{Rename-Item $_ -NewName ('Haikyuu - {0:D2}.mkv' -f $i++)} 

我重命名每個文件夾我的動畫系列和我的一些副本的有100多個視頻。不知何故,你可以教我什麼代碼的意思(CMD必須使用的代碼)。我搜索過的那些人無法用外行人的話來理解它,或者不會告訴用戶它應該如何工作。先謝謝你。順便說一句,該文件夾放置在外部驅動器。

+0

你說,在'cmd',所以你想有一個[標籤:批處理文件],或' cmd'單線? 「升序」是指什麼意思?按字母順序還是按字母順序排列? 'cmd'命令只適用於前者,因此要實現後者,需要一些代碼量;輸入文件的清晰模式將有助於減少代碼量... – aschipfl

回答

0
所以從一開始

$ I =變量,用於存儲初始值1

GET-ChildItem =就像 「DIR」 其中列出在一定路徑中的文件和文件夾。

在這種情況下,它列出了所有以任何東西開頭但具有擴展名的文件.mkv *表示通配符。

| =管道將第一個命令的輸出作爲下一個命令的輸入。

= ForEach-Object逐一迭代來自管道的每個對象。

$ _ =當前管線對象。這是由一個取每個對象一個,並使用重命名- 項目

-NewName =是重命名 - 項目,其要求輸入新名稱來傳遞的參數重命名。

希望能夠澄清您的需求。

+0

Rutta我已經在某些教程中瞭解了PowerShell代碼。我希望你能給我一些可以在CMD中使用的代碼,並教我如何使用每個代碼。 – BlackSkull

+0

我可以問你,爲什麼我只能使用一次powershell代碼? – BlackSkull

+0

@BlackSkull你cleary不理解這個PowerShell代碼,如果你認爲它只能使用一次。我不確定你期望會發生什麼,以及它在不同的目錄中如何失敗,所以很難指導你。 – notjustme

0

我無法重命名視頻文件的原因是文件名中有[括號]。 所以我用這個:

Get-ChildItem -Recurse -Include *.mkv | Rename-Item -NewName { $_.Name.replace("[","").replace("]","").replace("(","").replace(")","") } 

其中在同一個目錄,我可以訪問子文件夾也省略支架和parethesis。然後我繼續使用問題中的上述代碼來重命名每個文件夾中的文件。我爲每個文件夾進行「重命名」的原因是,每個文件夾都是不同的動漫系列。但上面的代碼正在工作。 如果任何人都可以給我更少的代碼,而不是重複'替換'並連接它,我會很樂意接受並選擇這個作爲最佳答案。 :)

0

如果您使用參數-LiteralPath作爲源,則不需要事先進行重命名。

%i = 1 
Get-ChildItem *.mkv | 
    ForEach {Rename-Item -LiteralPath "$_" -NewName ('Haikyuu - {0:D2}.mkv' -f $i++)} 

分揀一個提示,希望在源文件的本編號具有恆定的寬度,否則結果被混合起來作爲一個字母排序(這是固有的NTFS格式的驅動器)將排序的號碼10在2

前要檢查這個參數-whatif附加到重命名-Item命令