여러 디렉토리가없는 경우 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
