1

フォルダ内のすべてのファイルの名前を次のファイル名形式に変更する必要があります。

itemID-straight-bottle.png

itemID-bottle.png

cmdスクリプトまたはコマンドラインでこれをどのように達成できますか?

例;

REDHI20806-straight-bottle.pngからREDHI20806-bottle.pngへ

これはWindowsにあり、コマンドラインまたはバッチファイルのいずれかを使用して、特定のドライブ上のフォルダー内のすべてのファイルに対してこの名前変更を実行したいと思います。

4

4 に答える 4

7

短い答え


Windowsでは、PowerShellを使用できます 。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

している

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

している

$ 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
于 2011-10-07T04:59:43.453 に答える
2

ファイル名の最後の部分(straight-bottle.png)のみを(に)変更する必要がある場合は、次のbottle.pngようにするだけです。

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

(私はこれをテストしませんでしたが)

于 2011-10-09T11:25:45.593 に答える
0

結局、 wimhの答えの修正版を使用することになりましたが、「??????????」の代わりに、さまざまな長さの名前をより適切に処理できると思う「*」を使用しました。

ren *-straight-bottle.png *-bottle.png
于 2021-02-05T22:57:38.950 に答える
0

個人的には、名前の変更など、一括名前変更用に特別に設計されたツールを使用します。

このコマンド-straightは、現在のディレクトリ内のすべてのファイルからテキストを削除します。

$ renamer --find=-straight --dry-run *

Dry run

✔︎ REDHI20806-straight-bottle.png → REDHI20806-bottle.png
✔︎ GRNHI30030-straight-bottle.png → GRNHI30030-bottle.png

Rename complete: 2 of 2 files renamed.
于 2021-05-04T08:21:37.887 に答える