[powershell] 존재하지 않는 경우 디렉토리 작성

여러 디렉토리가없는 경우 PowerShell 스크립트를 작성하고 있습니다.

파일 시스템은 다음과 유사합니다

D:\
D:\TopDirec\SubDirec\Project1\Revision1\Reports\
D:\TopDirec\SubDirec\Project2\Revision1\
D:\TopDirec\SubDirec\Project3\Revision1\
  • 각 프로젝트 폴더에는 여러 개정판이 있습니다.
  • 각 개정 폴더에는 보고서 폴더가 필요합니다.
  • “개정”폴더 중 일부에는 이미 Reports 폴더가 있습니다. 그러나 대부분은 그렇지 않습니다.

각 디렉토리에 대해 이러한 폴더를 만들려면 매일 실행되는 스크립트를 작성해야합니다.

폴더를 작성하는 스크립트를 작성할 수 있지만 여러 폴더를 작성하는 것은 문제가 있습니다.



답변

-Force매개 변수를 사용해보십시오 .

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

Test-Path -PathType Container먼저 확인 하는 데 사용할 수 있습니다 .

자세한 내용은 New-Item MSDN 도움말을 참조하십시오.


답변

$path = "C:\temp\NewFolder"
If(!(test-path $path))
{
      New-Item -ItemType Directory -Force -Path $path
}

Test-Path경로가 존재하는지 확인합니다. 그렇지 않으면 새 디렉토리를 작성합니다.


답변

다음 코드 스 니펫은 완전한 경로를 작성하는 데 도움이됩니다.

Function GenerateFolder($path) {
    $global:foldPath = $null
    foreach($foldername in $path.split("\")) {
        $global:foldPath += ($foldername+"\")
        if (!(Test-Path $global:foldPath)){
            New-Item -ItemType Directory -Path $global:foldPath
            # Write-Host "$global:foldPath Folder Created Successfully"
        }
    }
}

위 함수는 함수에 전달한 경로를 분할하여 각 폴더의 존재 여부를 확인합니다. 존재하지 않는 경우 대상 / 최종 폴더가 만들어 질 때까지 해당 폴더를 만듭니다.

함수를 호출하려면 아래 명령문을 사용하십시오.

GenerateFolder "H:\Desktop\Nithesh\SrcFolder"


답변

나는 똑같은 문제가 있었다. 다음과 같은 것을 사용할 수 있습니다.

$local = Get-Location;
$final_local = "C:\Processing";

if(!$local.Equals("C:\"))
{
    cd "C:\";
    if((Test-Path $final_local) -eq 0)
    {
        mkdir $final_local;
        cd $final_local;
        liga;
    }

    ## If path already exists
    ## DB Connect
    elseif ((Test-Path $final_local) -eq 1)
    {
        cd $final_local;
        echo $final_local;
        liga;  (function created by you TODO something)
    }
}


답변

-Force플래그 를 지정하면 폴더가 이미 존재하는 경우 PowerShell에서 불만을 제기하지 않습니다.

짧막 한 농담:

Get-ChildItem D:\TopDirec\SubDirec\Project* | `
  %{ Get-ChildItem $_.FullName -Filter Revision* } | `
  %{ New-Item -ItemType Directory -Force -Path (Join-Path $_.FullName "Reports") }

BTW, 작업을 예약하려면이 링크를 확인하십시오 : 백그라운드 작업 예약 .


답변

사용하다:

$path = "C:\temp\"

If (!(test-path $path))
{
    md C:\Temp\
}
  • 첫 번째 줄은 이름이 지정된 변수를 만들고 $path“C : \ temp \” 라는 문자열 값을 지정합니다.

  • 두 번째 줄은입니다 If에 의존 문 테스트 경로의 변수가 있는지 확인하는 cmdlet를 $path않습니다 없습니다 존재한다. 존재하지 않는 !기호를 사용하여 규정되어 있습니다 .

  • 세 번째 줄 : 위의 문자열에 저장된 경로를 찾지 못하면 중괄호 사이의 코드가 실행됩니다.

md 타이핑의 짧은 버전입니다. New-Item -ItemType Directory -Path $path

참고 : -Force경로가 이미 존재하는 경우 바람직하지 않은 동작이 있는지 확인하기 위해 아래 의 매개 변수를 사용하여 테스트하지 않았습니다 .

New-Item -ItemType Directory -Path $path


답변

PowerShell을 사용하여 디렉토리를 작성하는 방법에는 세 가지가 있습니다.

Method 1: PS C:\> New-Item -ItemType Directory -path "C:\livingston"

여기에 이미지 설명을 입력하십시오

Method 2: PS C:\> [system.io.directory]::CreateDirectory("C:\livingston")

여기에 이미지 설명을 입력하십시오

Method 3: PS C:\> md "C:\livingston"

여기에 이미지 설명을 입력하십시오