バッチファイルを使用して、ファイル名の最後(ただし拡張子の前)にテキストを追加します


18

左側の形式のファイルのリストがあります。次のように、各ファイル名、拡張子の前に文字列を追加します。

File 1.txt  ->  File 1 version 1.txt
File 2.txt  ->  File 2 version 1.txt
File 3.txt  ->  File 3 version 1.txt
File 4.txt  ->  File 4 version 1.txt
...

いずれの場合も、追加される文字列はすべてのファイルで同じです。

これは非常に単純なタスクのように見えますが、これをバッチファイルに入れるのに苦労しています。

renコマンドを試して、このページのいくつかの例に従いましたが、結果のファイル名は拡張子のに文字列追加します:

File 1.txt version 1.txt

SS64の「このページ」リンクの情報は、SUのQ&A(私の祝福あり)から来ています。WindowsRENAMEコマンドはワイルドカードをどのように解釈しますか?私は、新しい機能を発見したときにSUの回答を(まれに)維持しています。
dbenham

回答:


6

長いファイル名の場合は?、ブロックにさらに多くの質量を追加する必要があります?????????

ren *.?* ????????????????????????????????????????????????????????" version 1".*

2
迅速に回答していただきありがとうございます!ファイル拡張子を保持し、txtファイルのみに影響を与えるために、コマンドを少し編集しました:ren * .txt ????????????????????????? "Version
1.txt

最初に何かを追加したい場合はどう
ですか

幾つ ?文字が必要ですか?
Kaveesh Kanwal

39

renの文書化されていない癖に頼る代わりに、これを適切な方法でやってみませんか?

for %a in (*.txt) do ren "%~a" "%~na version 1%~xa"

バッチファイルでこれを使用する場合は、各%記号を二重にすることを忘れないでください。


1
優秀な!これはいつでもより良い答えです。+1
Fr0zenFyr 14

2

複数のファイルに「_A」を追加したかったのですが、これがその方法です。

最初に拡張機能を削除し、サフィックスを追加してから、拡張機能を元に戻しました。私はプログラマーではないので、それは確かに私のために働き、バッチコードをシンプルに保ちました。

@ECHO OFF

REN *.pdf *.
REN *. *_A.
REN *. *.pdf

2

コマンド(私のように)に不慣れな人のために、一括名前変更を非常に簡単にするソフトウェアがいくつかあります。

  • 一括名前変更ユーティリティ(オープンソースなし)
  • 名前を変更してください!(オープンソース)

1

@bwDracoのソリューションは優れていましたが、もっとシンプルに保つこともできました。私の一連のファイルはすべて* .jpgで、名前をすべて* c.jpgに変更したかったのです。このために必要な手順は2つだけで、3つは不要です。

ren "{filepath}\*.jpg" *.
ren "{filepath}\*" *c.jpg

0

サブフォルダーを通じて再帰的に

#!/bin/bash
# Warning: globstar excludes hidden directories.
# Turn on recursive globbing (in this script) or exit if the option is not supported:
shopt -s globstar || exit
for f in **
do
if [ -f "$f" ]; then
   extn=${f##*.} # save the extension of the file
   #mv "$f" "${f%.*}"_suffix.${extn};
   mv "$f" "${f%.*} version 1".${extn};
fi
done
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.