Windowsでファイルの名前を一括変更して、新しい名前を順番に生成する


-2

私はいくつかのファイル名を一括リネームする手助けが必要です。私は周りにいます 300ディレクトリすべてのファイルはWordです .docx 名前を変更した後もWordファイルのままにする必要があります。

各フォルダに1〜20個のファイルがあります( 決して 26以上)。 私はそれらをいくつかの順序で並べる必要があります(理想的には現在の名前のアルファベット順) そして、このパターンに従うようにそれらの名前を変更します。

Example A.docx
Example B.docx
Example C.docx
    etc. 

外部ソフトウェアは使えません。端末だけです。


あなたの質問は明確ではありません。各フォルダを調べてから、最初のファイルに名前を付けます。 Example A2番目のファイル Example Bなどどの順序を適用する必要がありますか? 26を超えるファイルがあるとどうなりますか?あなたはもう何を試しましたか?どこで行き詰まったのですか?
slhck

コマンドラインでforfilesコマンドを使用することを検討しましたか?
Trenly

1
調査する " aからの配管コマンド FOR /F ループ "あなたは使いたくなるでしょう DIR /S /B 多分コマンドを使用することを忘れないでください "TOKENS=*" または多分 "DELIMS=" コマンド出力などの制限としてスペースを削除します。簡単な例 for /f "tokens=*" %a in ('dir /s /b "<folderPath>"') do echo "%~a" 使用 REN それに応じて命令し、研究してください」 forループを使用する "変数置換" 「やはり。早めの考えの出発点……。
Pimp Juice IT

@slhck実際、最初のファイルは例A、2番目のファイルは例Bのようになります。アルファベットの文字以上のファイルはありません。それで、私はおよそ300のフォルダを持っています、そして手動ですべてを改名することは悪夢でした。私は組み込みのWindowsの一括リネームを試みましたが、それはそれらに数字+ファイル名のコピーを与えます、それは私のために働きません。 "Sample"と文字の間にスペース(アンダースコア_ではない)が必要なので、ほとんどのアドバイスは私には当てはまりません。これは助けになりますか?
Densetsu

1
(続き)…(2)あなたはこう言います。唯一の問題は、コンピュータがファイルの形式を認識しないことです。(2a) いう あなたが試したことそのスクリプトをあなたの質問にコピーしてください(もちろんソースに敬意を表して)。 (2b)私はあなたが話していると思います harrymc's answer robinCTSがコメントを投稿しましたanhourago 対処方法を説明します。試しましたか?何が起こった?
Scott

回答:


0

これはあなたが求めることをするPowerShellスクリプトです。

$letters = [char[]]([char]'A'..[char]'Z')
$directoryName = $null
$count = 0
Get-ChildItem -Path "your folder path" -File -Recurse | 
  ForEach-Object {
    if ($directoryName -eq $null -or $directoryName -ne $_.DirectoryName) {
      $directoryName = $_.DirectoryName
      $count = 0
  }
  $newname = "Example " + $letters[$count++] + ".docx"
  Rename-Item $_.fullname $newname
}

まずバックアップを取ります。


ありがとうございました!スクリプトを実行しましたが、名前は変更されません。フォルダの名前は "AsReceived"です。あなたが共有したスクリプトの中で、私が与えられたフォルダ/パスを修正する必要がある部分はありますか?
Densetsu

はい、狡猾に隠されている部分 "your folder path"
harrymc

すごい、今では本当にうまくいった。最後の質問です。名前を変更しているファイルはWord形式ですが、名前を変更した後でシステムがそれらを認識しなくなりました。この問題に対する解決策はありますか?
Densetsu

@Densetsuを追加する必要があります .doc 拡張子、すなわち $newname = "Example " + $letters[$count++] + ".doc"
robinCTS

正しい。すべてのファイルです .doc または .docx?それとも両方のタイプが混在している可能性がありますか?
harrymc
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.