2016-10-20 9 views
0

シェルでは、既存のケースを維持しながらディレクトリの内容のファイル名とディレクトリ名を再帰的に置き換えることができますか?たとえば、サブディレクトリの名前を「Test」または「test」とし、それぞれを「Testa」または「testa」と置き換えることができます。ケースを保存している間のファイルとディレクトリ名の再帰的置換

+0

ご質問が非常に明確ではないと思わないでください。 – Junaid

+0

@Junaid、私は例を追加しました。 – user994165

答えて

0

注意 - これは慎重に実行してください。多くのファイルの名前を変更してしまい、ファイルに間違った文字を追加したように見えます。ここには元に戻すボタンはありません)

私があなたを正しく理解していれば、これはそれを行います。

いくつかの.txtファイルとフォルダ構造は、スクリプトは以下の通りです

C:\Folder\firstfolder 
C:\Folder\fourthFolder 
C:\Folder\SecondFolder 
C:\Folder\Thirdfolder 
C:\Folder\firstfolder\aFile.txt 
C:\Folder\SecondFolder\Anotherfile.txt 
C:\Folder\Thirdfolder\yetAnotherFile.txt 

です。ファイルが拡張子を持つようにフォルダとファイルを分けなければならなかったので、拡張子の後に名前の変更文字列を追加したくないと思うかもしれません。

$source="C:\Folder" 
$addtoname="A" 

Get-ChildItem $source -Recurse | foreach { 
    $location = Split-Path $_.FullName 
    if($_.PSIsContainer){ 
     $name=$_.Name 
     Rename-Item $location"\"$name $location"\"$name$addtoname 
    } 
    else 
    { 
     $name = $_.BaseName 
     $ext = $_.Extension 
     Rename-Item $location"\"$nameext $location"\"$name$addtoname$ext 
    } 
} 

そして結果は、その後私は、これはあなたが望んでいたと私は何のためにこの中で私の時間を投資していなかったものです願っています

C:\Folder\firstfolderA 
C:\Folder\fourthFolderA 
C:\Folder\SecondFolderA 
C:\Folder\ThirdfolderA 
C:\Folder\firstfolderA\aFileA.txt 
C:\Folder\SecondFolderA\AnotherfileA.txt 
C:\Folder\ThirdfolderA\yetAnotherFileA.txt 

です。

+0

ありがとうございますが、Linux用の似たようなスクリプトはありますか?私はあなたのスクリプトがWindowsで他の人を助けると確信しています。 – user994165

+0

さて、私はLinuxのために試してみるつもりですが、以前はそれをチェックしておいたはずですが、powershellは今Linuxで動作しています;) – Junaid

関連する問題