2017-11-30 3 views
0

(1) 私はおそらく約10,000のファイルを含む約200のディレクトリを持っています。すべてのファイルとディレクトリの名前を小文字に変更するスクリプト(ユニコードを含む)

私は名前をそのままにしたいが、すべてを小文字に変更したい。例えば、 'É'(to 'é')などのUnicode文字を含む。

PowerShellでどのように行うことができるかアドバイスできますか?それは私のコンピュータであり、私は管理者権限を持っています。

+0

は、Windowsの場合は、小文字を区別しないではないですか?私。 file1の名前をFILE1に変更することはできません。 OSはこの2つの間に差異がないため、操作は拒否されます。これをチェックしてください:https://superuser.com/a/505827/206562 – marekful

+0

@marekfulが間違っています。ウィンドウは大文字と小文字を区別しませんが( 'test.txt'を使って' test.txt'を呼び出すことができます)、大文字と小文字の区別が異なります。 'Rename-Item TEST.txt test.TXT'は単に' TEST.txt'の名前を 'test.TXT'に変更し、拒否しません。あなたの参照はファイルエクスプローラと約5年前のものです。 – Clijsters

+0

こんにちは、それは "化粧品"目的のためです:)それは、小文字ですべてのファイルとディレクトリを持っていることははるかに簡単です – clippertm

答えて

1

ほとんどの人がこの記事を書くことができると確信していますが、そのアイデアはあなたがそれを書くことです。それで正しい方向を指します。

Get-ChildItem-Recurseスイッチを使用すると、ディレクトリ下のすべてのファイルとフォルダを取得できます。

ToLower()メソッドを使用すると、文字列を小文字に変換できます。

Rename-Itemを使用して、目的のフォルダまたはディレクトリの名前を変更します。

私はそれを試してみましたが、ユニコードでも機能しました。ファイルとフォルダを別々に扱う必要があるかもしれません。そうしなければならなかった。

EDIT: ファイルの場合:

Get-ChildItem C:\temp -Recurse -File | ForEach-Object{ Rename-Item -Path $_.FullName -NewName $_.name.ToLower()} 
+0

おかげで、ローヒン、試してみましょう! – clippertm

+0

これまでに試したことは次のとおりです。名前の変更ToLower(Get-ChildItem -LiteralPath D:\ test -Directory -File -Recurse)構文が正しいかどうかわからない:( – clippertm

+0

試してみてもうまくいかない:(Get -ChildItem D:\ test -Recurse | Rename-Item-NewName {$ _ .name.ToLower()} – clippertm

関連する問題