2013年8月7日水曜日

フォルダ構成のみコピーする

概要

システム開発を行っている中で同一のフォルダ構成を作成する場合がある
・現行プロジェクトのフォルダ構成を新規プロジェクトにも適用
・ソースファイル/設定ファイル等の修正前後の差分をフォルダ構成含めて確認

コピー元(フォルダ)とコピー先(フォルダ)を指定して実行
・指定したコピー元が存在しない場合はコピーを行わない
・指定したコピー先が存在しない場合は作成してコピーを行う
・コピー元のフォルダがコピー先に存在する場合は上書き
・コピー先にコピー元に存在しないフォルダが存在する場合そのまま

関数


実行例

# 実行
PS > Copy-Folder -CopyFolderPath "C:\Project123" -DestFolderPath "C:\Project345"

メモ

新規にフォルダ・ファイルを作成「New-Item」

・引数[-Type directory]を指定して新規にフォルダを作成する

PS > New-Item <<フォルダのフルパス>> -Type directory

・引数[-Type file]を指定して新規にファイルを作成する
PS > New-Item <<ファイルのフルパス>> -Type file

・引数[-Force]を指定して強制上書きする
PS > New-Item <<ファイルのフルパス>> -Type file -Force

フォルダ配下のフォルダ・ファイル情報を取得「Get-ChildItem」

・フォルダ配下のみ取得する

PS > Get-ChildItem -Path <<フォルダのフルパス>>

・引数[-Recurse]を指定してサブフォルダ配下も再帰的に取得する
PS > Get-ChildItem -Path <<フォルダのフルパス>> -Recurse
例1) 「C:\sample」フォルダ配下のフォルダ・ファイル情報を取得
PS > Get-ChildItem -Path C:\sample

    ディレクトリ: C:\sample


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----        2013/07/09     13:59            sample
-a---        2013/07/09     13:57          0 sample1.txt
-a---        2013/07/09     13:58          0 sample2.txt
例2)「C:\sample」フォルダのサブフォルダ配下も含めてフォルダ・ファイル情報を取得
PS > Get-ChildItem -Path C:\sample -Recurse

    ディレクトリ: C:\sample


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----        2013/07/09     13:59            sample
-a---        2013/07/09     13:57          0 sample1.txt
-a---        2013/07/09     13:58          0 sample2.txt


    ディレクトリ: C:\sample\sample


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---        2013/07/09     13:57          0 sample1_2.txt
-a---        2013/07/09     13:58          0 sample2_2.txt

Get-ChildItemで取得した「Mode(属性)」

Mode(属性) 内容
d フォルダ
a ファイル
r 読み取り専用
h 隠しファイル
s システムファイル

文字列すべてを小文字に変換「ToLower()」

・メソッド[ToLower()]を使用して小文字に変換

PS > <<文字列>>.ToLower()
例) 英大文字を英小文字に変換
PS > $value = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
PS > $value = $value.ToLower()
PS > $value

abcdefghijklmnopqrstuvwxyz

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。