内のすべてのフォルダ、サブフォルダ、およびファイルを一括して大文字にする


1

すべてのディレクトリの最初の文字を大文字にして、特定のハードドライブ(C:ではなく)上のすべてのディレクトリの名前を変更しようとしています(だから: \images - > \Images )残念ながら、これを一から書くのに十分な経験はありません。


回答:


4

次のネイティブバッチスクリプトは、ドライブX:内のすべてのディレクトリの名前を変更します。読み取り専用、隠しディレクトリ、システムディレクトリは無視され、再解析ポイントは無視されます。名前を小文字に変換してから、ディレクトリ名の最初の文字(英字)を大文字にします。名前のUnicodeを処理しません。

@echo off
setlocal disableDelayedExpansion
set "drive=x"
set "tempFile=%temp%\initUpper%random%.txt"
dir /s /b /l /ad-l-h-s-r %drive%:\* >"%tempFile%"
for /f "usebackq eol=: delims=" %%F in ("%tempFile%") do (
  set "old=%%F"
  set "new=%%~nxF"
  setlocal enableDelayedExpansion
  for %%C in (
    A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
  ) do if /i "!new:~0,1!" equ "%%C" set "new=%%C!new:~1!"
  ren "!old!" "!new!" 2>nul || echo unable to rename !old!
  endlocal
)
del "%tempFile%"

このスクリプトはパフォーマンス上の理由から一時ファイルを使用します。 FOR / FにDIRコマンドの出力を直接読み取らせるように変更できます。しかし、出力はかなり大きくなる可能性があり、コマンドの結果セットが非常に大きい場合、FOR / Fは非常に遅くなります。

DIRコマンドに適用できる多くの調整があります。例えば:

を削除 /ad ファイルとディレクトリの名前を変更するオプション: dir /s /b /l /a-l-h-s-r

を削除 /a-h-s 隠しフォルダとシステムフォルダを含めるオプション: dir /s /b /l /ad-l-r

を削除 /l 頭文字以外のすべての大文字小文字を保存するオプション: dir /s /b /ad-l-h-s-r


0

Martheen Cahya Pauloがコメントで述べているように、この質問はすでに間接的に答えられています。

あなたは素晴らしいツールを使うことができます、 宇宙竜巻リナマー 、ここに掲載されているように: https://superuser.com/a/65304/125301


ええ、たくさんの無料/有料の大量リネームの誰でも簡単にこれを行うことができます。バッチファイルを使用しても実行できると確信していますが、絶対に必要ではない場合は回避することをお勧めします(特にそれらが複雑になり、メンテナンスや更新が困難になる場合)。
Karan

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