Windowsで一度に80.000ファイルの名前を変更する方法


8

フォルダに80.000個のファイルがあり、それらすべての名前を変更する必要があります

filename.jpg

._filename.jpg

Windows環境では、私はdosから推測します。その理由は、これらのファイルをunixからtar.gzに圧縮してWindowsにコピーしたことと、何らかの理由でファイル名が変更されたためです。

それを行うためのコマンドは何ですか?ありがとう

回答:


3

組み込みrenameまたはrenコマンドを使用できます。

ren *.jpg ._*.jpg

ただし、これらすべてのものと同様に、最初にいくつかのファイルのみを含むディレクトリで試してください。


1
私はあなたのアプローチが好きですが、私には2つの問題があります:(1)ファイル名の最初の文字が置き換えられます。つまり、「._」は最初に追加されませんが、最初の2文字が置き換えられます。(2)「._」は実際には機能しません。私が使用する場合、たとえば「__」は機能します。ドットだと思います。いくつかの問題
動脈瘤

@パトリック-私はこれを完全にテストする機会がなかったと認めなければなりません。そうです、問題を引き起こしているドットについてあなたは正しいと思います。
ChrisF

これは誤りであり、ドットのせいではありません。ren同じ長さのテキストでのみテキストを置き換えることができます。たとえば、ファイルfile1.txtとがある場合は、期待どおりfile2.txtren file*.txt blah*.txt動作します(ファイルblah1.txtとがありますblah2.txt)。ただし、ren blah*.txt myfile*.txtコマンドbombs outを入力すると、名前blah1.txtmyfile.txt(ではなくmyfile1.txt)に変更さblah2.txtmyfile.txt、そのファイルがすでに存在するためにに名前を変更できません。
David Richerby 2014

15

PowerShellを使用する方法は次のとおりです。

フォルダに移動して、このコマンドを実行します

Get-ChildItem *.jpg | Rename-Item -newname {"._" + $_.Name}

追加ボーナスショートバージョン:

gci *.jpg | ren -newname {"._" + $_.Name}

6

私には2つの解決策があります:

  1. すべてのファイルは同じフォルダにあります

    • そのフォルダーのコマンドプロンプトから次のコマンドを実行します。

      for /f "delims=¯" %i in ('dir /b /on') do ren "%i" "._%i"
      
  2. サブフォルダにファイルがあり、最初の「n」文字を必要な文字列に置き換えたい場合の完全なソリューション:D

    • 次のコマンドでバッチファイルを作成します
    • 変数パラメーターを必要なものに変更します
      • path""ファイルのルートパス内に配置します(例: "C:\ documents and settings \ user \ desktop \ new folder")
      • numfirstchars2replace:最初の文字を置き換える数字を入れます(あなたの場合、2)
      • str2put:新しいファイル名のプレフィックスとして追加する文字列を入れます(あなたの場合、._
    • ファイルがある場所とは異なるフォルダーで実行します


@echo off

::only to tell user what this bat are doing
echo.1.initializing...

::enable that thing to allow, for example, incremental counter in a for loop :)
echo.- EnableDelayedExpansion
SETLOCAL EnableDelayedExpansion

::variables
echo.- variables
:: - place here the absolute root path of your files
set path="put here where are the root folder of your files"
set pathbak=%cd%
set numfirstchars2replace=2
set str2put=._

::go to %path% and its driveletter
echo.- entering the path you want
for /f "delims=¯" %%i in ('echo.%path%') do %%~di
cd %path%

::search all subfolders and save them to a temp file
echo.- searching for subfolders
echo.%path%>%temp%\tmpvar.txt
for /f "delims=¯" %%i in ('dir /s /b /on /ad') do echo."%%i">>%temp%\tmpvar.txt

::execute command for root folder and all found subfolders
echo.
echo.2.executing...
for /f "delims=¯" %%i in (%temp%\tmpvar.txt) do (
  cd %%i
  echo.- in folder: %%i
  for /f "delims=¯" %%j in ('dir /b /on /a-d') do (
    set newname=%%j
    set newname=!newname:~%numfirstchars2replace%,1000!
    echo.- renaming from "%%j" to "%str2put%!newname!"...
    ren "%%j" "%str2put%!newname!"
  )
)

echo.
echo.3.exiting...
::return to %pathbak% and its driveletter
for /f "delims=¯" %%i in ('echo.%pathbak%') do %%~di
cd %pathbak%

@echo on

完全にテスト済み:) @ChrisFコメントで指定したいくつかの仕様を含め、問題を解決します。注:「delims =¯」で、ファイル名に「¯」が使用されている場合は、「¯」をファイル名に使用されていないことがわかっている別の文字に変更します
kokbira

ループを実行してsthの名前を変更するという非常に長いスクリプトが原因で、投票が行われました。:)
wullxz

まあ、正直なところ、すべてのファイルを名前でソートし、Xを注文番号として「._lenameX.jpg」に名前を変更して「for / f」ループを作成することもできますが、他の場合にはそうする方法を考えました-将来同様の問題が発生した場合、誰かがいくつかのコマンドを変更できます...
kokbira '22

「delims =¯」の代わりに「delims =」を使用できます(私はそれを忘れていました:D)。それは...その場合には、私が何をしたいんので、また、あなたは「= delims」/ F intead用/ Fのために使用することができます
kokbira

3

それらがすべて同じフォルダーにある場合は、Control+ Aですべてを選択してから、を押してF2、そのうちの1つの名前を変更できます。後続のすべてのファイルには、file(2)、file(3)などの名前が付けられます


3

Powershell(Windows 7にプリインストールされています)を試してください:

Get-Childitem /path/to/your/files | foreach-object { move-item $_ $("._" + $_.name) }

(私のダウンロードディレクトリでテストしました。)

編集:Siim Kのコードは、すべての「._filename.jpg」に「.jpg」を追加します。Siim Kのコードの最後の ".jpg"を削除すると、ファイルの名前を変更する短くてエレガントなコードができます。


ありがとう、更新されました。拡張機能の操作を必要とし、気付かなかった同様の名前変更コマンドからのコードを再利用しました。
Siim K


0

私は、Flash Renamerがバッチでファイルの名前を変更するための優れたツールであることに気づきました。

試用版と完全版($ 20)があり、メタデータに基づいてファイルの名前を変更できます。これは、私が主に使用しているMP3ファイルの名前を変更するのに非常に役立ちます。


0

ユーザーフレンドリーな方法で一括で名前を変更する方法を探している場合、無料のツールAnt Renamerを試すことができます。実行できるアクションの膨大なリストがあり、名前を変更する前に便利なプレビューが表示されます。音楽、写真、ビデオライブラリをいじるときによく使用します。


0

私はこのフリーウェアのFile Renamerプログラムを使用して素晴らしい結果を得ました。多くの異なるフィルターとオプションに加えて、結果をテストする機能を提供します。少し時代遅れのUIはおそらくチャンピオンのように機能します。

http://www.webxpace.com/software/freeware.shtml#FileRenamer

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.