2017-02-10 11 views
0

フォルダ内のファイル名を解析し、ファイル名の一部を変数に格納しようとしています。チェック!私は、変数の1つをとり、そのフォルダ名が別の場所に存在するかどうか、それが作成されていないかどうかをチェックしたいと思います。 Write-Hostを使用すると、フォルダ名は有効なパスであり、フォルダ名は存在しませんが、スクリプトの実行時にはフォルダは作成されません。Powershellが存在しない場合にフォルダを作成する

フォルダが存在しない場合は、どのように作成する必要がありますか?

$fileDirectory = "C:\Test\" 
$ParentDir = "C:\Completed\" 
foreach ($file in Get-ChildItem $fileDirectory){ 

    $parts =$file.Name -split '\.' 

    $ManagerName = $parts[0].Trim() 
    $TwoDigitMonth = $parts[1].substring(0,3) 
    $TwoDigitYear = $parts[1].substring(3,3) 

    $FolderToCreate = Join-Path -Path $ParentDir -ChildPath $ManagerName 

    If(!(Test-Path -path "$FolderToCreate\")) 
    { 
     #if it does not create it 
     New-Item -ItemType -type Directory -Force -Path $FolderToCreate 
    } 

} 
+0

はこれを試してみてください。 新項目-ItemTypeディレクトリ-Force -Path C:それ\ \ \のパスは\たり、\は完璧に動作 –

答えて

5
if (!(Test-Path $FolderToCreate -PathType Container)) { 
    New-Item -ItemType Directory -Force -Path $FolderToCreate 
} 
+0

存在し\ていません\ように!ありがとう – BellHopByDayAmetuerCoderByNigh

0

他のソリューション:

if (![System.IO.Directory]::Exists($FolderToCreate)) 
{ 
    New-Item -ItemType Directory -Force -Path $FolderToCreate 
} 
1

はこれを試してください: キーは(-Force)である彼らが存在しないとき、それはすべての単一のサブディレクトリをチェックし、それは単にそれを作成します次のもののために行って、決してエラーを投げることはありません。

以下の例では、7つのネストされたサブディレクトリが必要です。存在しない誰かを作成することができます。

別の点では、時間を何度でも再実行でき、エラーが発生しないように設計されています。

New-Item -ItemType Directory -Force -Path C:\Path\That\May\Or\May\Not\Exist 
+0

このコードスニペットは歓迎されていますが、何か助けを与えるかもしれませんが、*どうやって質問に対処するのかは説明を含めれば大幅に改善されます(// meta.stackexchange.com/q/114762)。それがなければ、あなたの答えははるかに教育的価値が低くなります。あなたが今質問している人だけでなく、将来の読者の質問に答えていることを忘れないでください!説明を追加するためにあなたの答えを[編集]し、どんな制限と前提が適用されるかを示してください。 –

+0

木全体の作成のための強制の必要性を指摘するためのアップ投票。 – GermanC

関連する問題