プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
Windows PowerShell、ファイル名を変更する
結論から書くと「Rename-Item」を使って

Rename-Item 古い名前 新しい名前

とするか「Move-Item」を使って

Move-Item 古い名前 新しい名前

とすればOKです。
「Rename-Item」の方が本来の用途に沿った使い方ですが、
「Move-Item」の方が融通が利いて便利ですよ。

それでは詳細を書いていきます。

ちょっくらWindows PowerShellを使っていろいろやっていたのですが、
ファイル名を変更したくなりましてね。

どうやるの(--?

というのが今回のきっかけです。
Windows PowerShellは使い慣れていないせいか、いろいろ手さぐり状態ですね(^^ゞ

Google先生、さくっと教えてくださいな(-人-)

ふむふむ(--)

「Rename-Item」を使えば良いそうです。
マイクロソフトさんの解説サイトを見たら

Rename-Item 古い名前 新しい名前

と説明されていました。
サンプルコードとかを見ると

Rename-Item 古い名前 -newName 新しい名前

と書いている人が多いみたいですね。
どちらでも動きました。

新しい名前で指定できるのは、ファイル名だけです。
パスを含めることはできません。
パス付きで

Rename-Item .\hoge.txt .\sub_dir\hoge2.txt

のようなコマンドを実行したところ、エラーになりましたφ(--)

20140918-01.png


古い名前と新しい名前が同じフォルダでも駄目なのかな(--?と気になったので

Rename-Item .\sub_dir\hoge.txt .\sub_dir\hoge2.txt

のようなコマンドを実行してみたところ、同じくエラーになりましたφ(--)

20140918-02.png


位置関係に依らず、新しい名前にパスを指定するのがNGのようです。
マイクロソフトさんの解説サイトでも、オプション「-NewName」の説明に

項目の新しい名前を指定します。パスと名前ではなく、名前のみを入力します。Path パラメーターで指定したパスと異なるパスを入力した場合、Rename-Item によってエラーが生成されます。項目の名前を変更して移動するには、Move-Item コマンドレットを使用します。

と書いてありました。
新しい名前をパス付きで指定したければ「Rename-Item」ではなく「Move-Item」を使え、らしいです。

古い名前はパス付きで大丈夫ですけどね。
例えば

Rename-Item .\sub_dir\hoge.txt hoge2.txt

を実行すると「sub_dir」内の「hoge.txt」が「hoge2.txt」に変わります。

ふむふむ、なるほど(--)

それでは、リネーム先のファイルが既にあったらどうなるの(--?ということで、
既に「hoge2.txt」がある状態で

Rename-Item .\hoge.txt hoge2.txt

を実行してみました。
結果は、怒られましたφ(--)

20140918-03.png


どーせ「-Force」オプションを付ければ上書きできるんでしょ(--?と考え、
余裕綽々で

Rename-Item .\hoge.txt -newName hoge2.txt -Force

を実行してみました。
結果は、同じように怒られましたφ(--)

20140918-04.png


どうやら「Rename-Item」で既存ファイルの上書きはできないようです。
「Move-Item」を使って

Move-Item .\hoge.txt hoge2.txt -Force

とすれば大丈夫だったので、既存ファイルがあった際に上書きしたい場合は
「Rename-Item」ではなく「Move-Item」を使いましょう。

「Move-Item」を使えば、あっさり上書き&ファイル名変更できましたφ(--)

20140918-05.png


なるほどねー。
「Move-Item」の方が便利じゃね?(-。-)ぼそっ

最後にもう一度まとめておくと、ファイル名の変更は「Rename-Item」か「Move-Item」を使えばできます。
「Rename-Item」を使うのが本来の用途に沿った使い方です。
個人的には「Move-Item」を使った方が、融通が利くので便利な気はします。

そんな感じ\(--)/
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

category:● Windows PowerShell  thema:システム開発 - genre:コンピュータ  Posted by ササキマコト 

  関連記事