Командная строка (или командный файл) переименовывает все файлы в папке (Windows) - PullRequest
0 голосов
/ 07 октября 2011

Мне нужно переименовать все файлы в папке со следующим форматом имени файла;

Itemid-прямой bottle.png

К

Itemid-bottle.png

Как я могу сделать это с помощью сценария cmd или в командной строке?

пример;

REDHI20806-direct-bottle.png ДО REDHI20806-bottle.png

Я должен был сказать, что это в Windows, и я хочу использовать либо командную строку, либо командный файл для запуска этого переименования для всех файлов в папке на определенном диске

Ответы [ 2 ]

7 голосов
/ 07 октября 2011

короткий ответ

В Windows вы можете использовать PowerShell, который установлен по умолчанию в Windows 7 и может быть загружен и установлен в предыдущих версиях.С PowerShell вы можете сделать переименование следующим образом:

ls | foreach-object -process {ren $_ (%{$_ -replace "-straight",""})}

В Unix / Linux , ничего особенного не нужно устанавливать, и вы можете сделать переименование следующим образом:

ls | awk '{print("mv "$1" "$1)}' | cut -f -3,5- -d '-' | sh


примеры

Пример Windows

Дано

PS C:\rename-me> ls

    Directory: C:\rename-me

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---         10/9/2011   1:35 PM          0 REDHI20806-straight-bottle.png
-a---         10/9/2011   1:35 PM          0 REDHI20807-straight-bottle.png
-a---         10/9/2011   1:35 PM          0 REDHI20808-straight-bottle.png
-a---         10/9/2011   1:35 PM          0 REDHI20809-straight-bottle.png
-a---         10/9/2011   1:35 PM          0 REDHI20810-straight-bottle.png

Doing It

PS C:\rename-me> ls | foreach-object -process {ren $_ (%{$_ -replace "-straight",""})}

Результат

PS C:\rename-me> ls

    Directory: C:\rename-me

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---         10/9/2011   1:35 PM          0 REDHI20806-bottle.png
-a---         10/9/2011   1:35 PM          0 REDHI20807-bottle.png
-a---         10/9/2011   1:35 PM          0 REDHI20808-bottle.png
-a---         10/9/2011   1:35 PM          0 REDHI20809-bottle.png
-a---         10/9/2011   1:35 PM          0 REDHI20810-bottle.png


Пример Unix / Linux

Учитывая

$ ls -l
total 0
-rw-r--r--  1 user  staff  0 Oct  7 00:54 REDHI20806-straight-bottle.png
-rw-r--r--  1 user  staff  0 Oct  7 00:54 REDHI20807-straight-bottle.png
-rw-r--r--  1 user  staff  0 Oct  7 00:54 REDHI20808-straight-bottle.png
-rw-r--r--  1 user  staff  0 Oct  7 00:54 REDHI20809-straight-bottle.png
-rw-r--r--  1 user  staff  0 Oct  7 00:54 REDHI20810-straight-bottle.png

Doing It

$ ls | awk '{print("mv "$1" "$1)}' | cut -f -3,5- -d '-' | sh

Результат

$ ls -l
total 0
-rw-r--r--  1 user  staff  0 Oct  7 00:54 REDHI20806-bottle.png
-rw-r--r--  1 user  staff  0 Oct  7 00:54 REDHI20807-bottle.png
-rw-r--r--  1 user  staff  0 Oct  7 00:54 REDHI20808-bottle.png
-rw-r--r--  1 user  staff  0 Oct  7 00:54 REDHI20809-bottle.png
-rw-r--r--  1 user  staff  0 Oct  7 00:54 REDHI20810-bottle.png
1 голос
/ 09 октября 2011

если нужно изменить только последнюю часть имени файла (straight-bottle.png) (на bottle.png), вы можете просто сделать это:

REN ??????????-straight-bottle.png ??????????-bottle.png

(хотя я не проверял это)

...