New-Item

新しい項目を作成します。

構文

New-Item
   [-Path] <String[]>
   [-ItemType <String>]
   [-Value <Object>]
   [-Force]
   [-Credential <PSCredential>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
New-Item
   [[-Path] <String[]>]
   -Name <String>
   [-ItemType <String>]
   [-Value <Object>]
   [-Force]
   [-Credential <PSCredential>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

説明

コマンドレットは New-Item 新しい項目を作成し、その値を設定します。 作成できる項目の種類は、アイテムの場所によって異なります。 たとえば、ファイル システムでは、 New-Item ファイルとフォルダーを作成します。 レジストリで、 New-Item レジストリ キーとエントリを作成します。

New-Item は、作成する項目の値を設定することもできます。 たとえば、新しいファイルを作成するときに、 New-Item 初期コンテンツをファイルに追加できます。

例 1: 現在のディレクトリにファイルを作成する

このコマンドは、現在のディレクトリに "testfile1.txt" という名前のテキスト ファイルを作成します。 Path パラメーターの値のドット ('.') は、現在のディレクトリを示します。 Value パラメーターに続く引用符で囲まれたテキストが、コンテンツとしてファイルに追加されます。

New-Item -Path . -Name "testfile1.txt" -ItemType "file" -Value "This is a text string."

例 2: ディレクトリを作成する

このコマンドは、ドライブに "Logfiles" という名前のディレクトリを C: 作成します。 ItemType パラメーターは、新しい項目がファイルやその他のファイル システム オブジェクトではなくディレクトリであることを指定します。

New-Item -Path "c:\" -Name "logfiles" -ItemType "directory"

例 3: プロファイルを作成する

このコマンドは、変数で指定されたパスに PowerShell プロファイルを $profile 作成します。

プロファイルを使用して PowerShell をカスタマイズできます。 $profile は、"CurrentUser/CurrentHost" プロファイルのパスとファイル名を格納する自動 (組み込み) 変数です。 既定では、PowerShell にはパスとファイル名が格納されていても、プロファイルは存在しません。

このコマンドでは、変数は $profile ファイルのパスを表します。 ItemType パラメーターは、コマンドがファイルを作成することを指定します。 Force パラメーターを使用すると、パス内のディレクトリが存在しない場合でも、プロファイル パスにファイルを作成できます。

プロファイルを作成した後、プロファイルにエイリアス、関数、およびスクリプトを入力して、シェルをカスタマイズできます。

詳細については、「 about_Automatic_Variablesabout_Profiles」を参照してください。

New-Item -Path $profile -ItemType "file" -Force

例 4: 別のディレクトリにディレクトリを作成する

この例では、"C:\PS-Test" ディレクトリに新しい Scripts ディレクトリを作成します。

新しいディレクトリ項目 "Scripts" の名前は、Name の値に指定されるのではなく、Path パラメーターの値に含まれます。 構文に示すとおり、どちらのコマンド形式も有効です。

New-Item -ItemType "directory" -Path "c:\ps-test\scripts"

例 5: 複数のファイルを作成する

この例では、2 つの異なるディレクトリにファイルを作成します。 Path は複数の文字列を受け取るため、これを使用して複数の項目を作成できます。

New-Item -ItemType "file" -Path "c:\ps-test\test.txt", "c:\ps-test\Logs\test.log"

例 6: ワイルドカードを使用して複数のディレクトリにファイルを作成する

このコマンドレットでは New-ItemPath パラメーターでワイルドカードがサポートされています。 次のコマンドは、temp.txtPath パラメーターのワイルドカードで指定されたすべてのディレクトリにファイルを作成します。

Get-ChildItem -Path C:\Temp\

Directory:  C:\Temp

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d-----        5/15/2019   6:45 AM        1   One
d-----        5/15/2019   6:45 AM        1   Two
d-----        5/15/2019   6:45 AM        1   Three

New-Item -Path C:\Temp\* -Name temp.txt -ItemType File | Select-Object FullName

FullName
--------
C:\Temp\One\temp.txt
C:\Temp\Three\temp.txt
C:\Temp\Two\temp.txt

このコマンドレットでは Get-ChildItem 、ディレクトリの下に 3 つのディレクトリが C:\Temp 表示されます。 ワイルドカードを使用すると、 New-Item コマンドレットは temp.txt 現在のディレクトリのすべてのディレクトリにファイルを作成します。 コマンドレットは New-Item 、新しく作成されたファイルのパスを確認するために Select-Object パイプ処理された、作成した項目を出力します。

例 7: ファイルまたはフォルダーへのシンボリック・リンクを作成する

次の使用例は、現在のフォルダー内のNotice.txt ファイルへのシンボリック リンクを作成します。

$link = New-Item -ItemType SymbolicLink -Path .\link -Target .\Notice.txt
$link | Select-Object LinkType, Target

LinkType     Target
--------     ------
SymbolicLink {.\Notice.txt}

この例では、 TargetValue パラメーターのエイリアスです。 シンボリック リンクのターゲットは、相対パスにすることができます。 PowerShell v6.2 より前のバージョンでは、ターゲットは完全修飾パスである必要があります。

PowerShell 7.1 以降では、相対パスを使用して、Windows 上のフォルダーへの シンボリック リンク を作成できるようになりました。

例 8: -Force パラメーターを使用してフォルダーを再作成する

次の使用例は、ファイルを含むフォルダーを作成します。 次に、.. を使用 -Forceして同じフォルダーを作成します。 フォルダーは上書きされませんが、作成されたファイルをそのまま使用して既存のフォルダー オブジェクトを返すだけです。

PS> New-Item -Path .\TestFolder -ItemType Directory
PS> New-Item -Path .\TestFolder\TestFile.txt -ItemType File

PS> New-Item -Path .\TestFolder -ItemType Directory -Force

    Directory: C:\
Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----         5/1/2020   8:03 AM                TestFolder

PS> Get-ChildItem .\TestFolder\

    Directory: C:\TestFolder
Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----         5/1/2020   8:03 AM              0 TestFile.txt

例 9: -Force パラメーターを使用して既存のファイルを上書きする

次の使用例は、値を持つファイルを作成し -Force、 . これにより、既存のファイルが上書きされ、length プロパティで確認できるようにコンテンツが失われます

PS> New-Item ./TestFile.txt -ItemType File -Value 'This is just a test file'

    Directory: C:\Source\Test
Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----         5/1/2020   8:32 AM             24 TestFile.txt

New-Item ./TestFile.txt -ItemType File -Force

    Directory: C:\Source\Test
Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----         5/1/2020   8:32 AM              0 TestFile.txt

注意

スイッチを-Force使用してNew-Itemレジストリ キーを作成する場合、コマンドはファイルを上書きする場合と同じように動作します。 レジストリ キーが既に存在する場合、キーとすべてのプロパティと値は空のレジストリ キーで上書きされます。

パラメーター

-Confirm

コマンドレットの実行前に確認を求めるメッセージが表示されます。

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

注意

このパラメーターは、PowerShell でインストールされているプロバイダーではサポートされていません。 このコマンドレットを実行するときに、別のユーザーを偽装したり、資格情報を昇格させたりするには、次を使用 Invoke-Commandします。

Type:PSCredential
Position:Named
Default value:Current user
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Force

このコマンドレットは、既存の読み取り専用項目に書き込む項目を強制的に作成します。 実装はプロバイダーごとに異なります。 Force パラメーターを使用しても、コマンドレットはセキュリティ制限をオーバーライドできません。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ItemType

プロバイダーによって指定された新しい項目の種類を指定します。 このパラメーターで使用できる値は、使用している現在のプロバイダーによって異なります。

場所がドライブ内にある FileSystem 場合は、次の値を使用できます。

  • ファイル
  • ディレクトリ
  • SymbolicLink
  • ジャンクション
  • ハードリンク

注意

Windows で型を SymbolicLink 作成するには、管理者として昇格する必要があります。 ただし、開発者モードを有効にしたWindows 10 (ビルド 14972 以降) では、シンボリック リンクを作成する昇格が不要になりました。

ドライブでは Certificate 、次の値を指定できます。

  • 証明書プロバイダー
  • Certificate
  • 保存
  • StoreLocation

詳細については、 about_Providersを参照してください。

Type:String
Aliases:Type
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Name

新しい項目の名前を指定します。 Name パラメーターまたは Path パラメーター値で新しい項目の名前を指定でき、新しい項目のパスを Name または Path の値で指定できます。 Name パラメーターを使用して渡された項目名は、Path パラメーターの値を基準にして作成されます。

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Path

新しい項目の場所のパスを指定します。 既定値は、 Path を省略した場合の現在の場所です。 [名前 ] で新しい項目の名前を指定するか、[ パス] に含めることができます。 Name パラメーターを使用して渡された項目名は、Path パラメーターの値を基準にして作成されます。

このコマンドレットの場合、 Path パラメーターは他のコマンドレットの LiteralPath パラメーターと同様に動作します。 ワイルドカード文字は解釈されません。 すべての文字が場所のプロバイダーに渡されます。 プロバイダーでは、すべての文字がサポートされていない場合があります。 たとえば、アスタリスク (*) 文字を含むファイル名を作成することはできません。

Type:String[]
Position:0
Default value:Current location
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Value

新しい項目の値を指定します。 値 New-Itemをパイプすることもできます。

Type:Object
Aliases:Target
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-WhatIf

コマンドレットの実行時に発生する内容を示します。 このコマンドレットは実行されません。

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

入力

Object

新しい項目の値をこのコマンドレットにパイプできます。

出力

Object

このコマンドレットは、作成した項目を返します。

メモ

New-Item は、任意のプロバイダーによって公開されるデータを操作するように設計されています。 セッションで使用できるプロバイダーを一覧表示するには、「.」と入力します Get-PsProvider。 詳細については、「about_Providers」を参照してください。