Help us understand the problem. What is going on with this article?

パワーシェルでフォルダのコピーとリネーム

More than 1 year has passed since last update.

コマンドプロンプトのワンライナーだと、どうもフォルダコピーが理解できないのでパワーシェルでやってみた

構成環境

  • Windows10
  • PowerShell 5.1

フォルダをコピーする

結論から言うと以下のコマンドレットでフォルダもファイルもコピーしてくれる
Copy-Item [コピー元フォルダ/ファイル] [コピー先フォルダ/ファイル] -Recurse
-Recurseはフォルダの中身も全部コピーするオプション

フォルダやファイルのリネームは以下のコマンドレット
Rename-Item [リネーム前フォルダ/ファイル] -newName [リネーム後フォルダ/ファイル]

以降は応用編
後々追記するかも

雛型となるフォルダを作成

#ISEのホスト画面の入出力例
PS C:\Users\xyz\Auction> New-Item Color-Black001_2018-1127 -ItemType Directory


    ディレクトリ: C:\Users\xyz\Auction


Mode                LastWriteTime         Length Name                                                                                                 
----                -------------         ------ ----                                                                                                 
d-----       2018/11/27      0:00                Color-Black001_2018-1127       

フォルダの命名規則を利用して複数コピー

PS C:\Users\xyz\Auction>foreach($list in 2..9){ Copy-Item Color-Black001_2018-1127 Color-Black00${list}_2018-1127 -Recurse }

PS C:\Users\xyz\Auction> Get-ChildItem


    ディレクトリ: PS C:\Users\xyz\Auction


Mode                LastWriteTime         Length Name                                                                                                 
----                -------------         ------ ----                                                                                                 
d-----       2018/11/27      0:00                Color-Black001_2018-1127                                                                             
d-----       2018/11/27      0:01                Color-Black002_2018-1127                                                                             
d-----       2018/11/27      0:01                Color-Black003_2018-1127                                                                             
d-----       2018/11/27      0:01                Color-Black004_2018-1127                                                                             
d-----       2018/11/27      0:01                Color-Black005_2018-1127                                                                             
d-----       2018/11/27      0:01                Color-Black006_2018-1127                                                                             
d-----       2018/11/27      0:01                Color-Black007_2018-1127                                                                             
d-----       2018/11/27      0:01                Color-Black008_2018-1127                                                                             
d-----       2018/11/27      0:01                Color-Black009_2018-1127  

とりあえずこんな感じでコピーできた

フォルダをリネームしてみる

  • 001を別の命名規則で置き換えてみる

ワンライナーでやる方法が思いつかいのでここからはps1ファイルを用いる

rename.ps1
$data=Get-ChildItem Color-Black*_2018-1127 -name
$count=( $data | Measure-Object).Count
foreach( $a in 1..$count){
    $b=$a-1
    Rename-Item $data[$b] -newName Color-Black10${a}_2018-1127
}

実行結果

PS C:\Users\xyz\Auction> Get-ChildItem


    ディレクトリ: C:\Users\xyz\Auction


Mode                LastWriteTime         Length Name                                                                                                 
----                -------------         ------ ----                                                                                                 
d-----       2018/11/27      0:20                Color-Black101_2018-1127                                                                             
d-----       2018/11/27      0:20                Color-Black102_2018-1127                                                                             
d-----       2018/11/27      0:20                Color-Black103_2018-1127                                                                             
d-----       2018/11/27      0:20                Color-Black104_2018-1127                                                                             
d-----       2018/11/27      0:20                Color-Black105_2018-1127                                                                             
d-----       2018/11/27      0:20                Color-Black106_2018-1127                                                                             
d-----       2018/11/27      0:20                Color-Black107_2018-1127                                                                             
d-----       2018/11/27      0:20                Color-Black108_2018-1127                                                                             
d-----       2018/11/27      0:20                Color-Black109_2018-1127                                                                             
-a----       2018/11/27      0:10            199 rename2.ps1                                                                                          

こういう風に一括でリネームしたいときってあるよね

最後に

フォルダやファイルの名前が適当過ぎて、管理が大変なのでもっと楽にリネームできる方法を模索中
というか今回もMove-Item使った方がよかったかも

まだ追記する...かも

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away