2012-07-23 5 views
0

임시 폴더 (C 디스크)를 제거하고 임시 파일의 모든 내용을 삭제하기위한 스크립트가 있습니다. 새 임시 폴더. 모든 것을 삭제하기 위해 이미 스크립트를 만들었지 만 Powershell을 사용하여 새 임시 폴더를 만드는 방법을 확신 할 수 없습니다. 누군가 Powershell에서 새 임시 폴더를 만드는 방법을 알고 있는지 궁금합니다.임시 폴더에있는 모든 것을 제거하고 임시 파일을 삭제하고 새 임시 파일을 만듭니다.

#remove all temporary files 
if($serverVersion.name -like "*2003*"){ 
    $dir = "\\$server" + '\C$\temp' 
} 
elseif($serverVersion.name -like "*2008*"){ 
    $dir = "\\$server" + '\C$\Windows\Temp' 
    } 

$tempArray = @() 
foreach ($item in get-childitem -path $dir){ 
    if ($item.name -like "*.tmp"){ 
     $tempArray = $tempArray + $item 
     } 
    } 

for ($i = 0; $i -le $tempArray.length; $i++){ 
    $removal = $dir + "\" + $tempArray[$i] 
    remove-item $removal -force -recurse 
    } 

임시 폴더도 올바르게 삭제하고 있습니다. 새 임시 폴더를 만들려면 어떻게해야합니까?

편집 : New-Item

if($serverVersion.name -like "*2003*"){ 
    $dir = "\\$server" + '\C$\temp' 
    remove-item $dir -force -recurse 
    new-item -path "\\$server" + '\C$\Windows\temp' -Type Directory 
} 
elseif($serverVersion.name -like "*2008*"){ 
    $dir = "\\$server" + '\C$\Windows\Temp' 
    remove-item $dir -force -recurse 
    New-Item -Path "\\$server" + '\C$\Windows\Temp' -Type Directory 
    } 

답변

1

사용 : 나는 사람들이 제시 한 내용이 원하는 효과를했을 경우 더욱이를 줄일 수있는 방법이 있는지, 궁금 해서요에 따라 내 코드를 업데이 트했습니다

New-Item -Path "\\$server\admin$\Temp" -Type Directory 

또한합니다 (MKDIR 기능에 포인트)에 'MD'별칭을 사용할 수 있습니다 :

md "\\$server\admin$\Temp" -Force 
0 cmdlet을 사용하여 폴더를 만들 수 있습니다

업데이트 :

다음은 수행 할 작업입니다. 디렉토리를 제거하십시오. $를 확인하십시오. 명령이 성공적으로 완료되지 않은 경우 variable (마지막 명령이 성공하면 $ true를 반환합니다.) - Temp 폴더를 만듭니다. 그렇지 않으면 오류가 있었어야하며 Temp dir이 여전히 존재해야합니다.

Remove-Item -Path "\\$server\admin$\Temp" -Force -Recurse 

if($?) 
{ 
    New-Item -Path "\\$server\admin$\Temp" -Type Directory 
} 

p.s. 또한 새 항목 (또는 'md')에 강제 스위치를 추가하고 이전 명령의 결과에 관계없이 폴더를 만들 수 있습니다. 관리자 $ 무엇을합니까 :

+0

안녕 셰이, 나중에 빠른 질문 임시 폴더를 제거하지 마십시오? C 디스크가 아닌 디스크를 가져 오는 다른 방법입니까? 전에 본 적이없고 호기심이없는 경우 – Valrok

+2

admin $은 각 서버의 windows 디렉토리를 가리키는 관리 공유입니다 (windows로 작성). http://en.wikipedia.org/wiki/Administrative_share –

+0

흥미 롭습니다. 그러나 제 경우에는 스크립트의 초기 단계에서 사용자는 어떤 특정 서버에서 작업할지 결정합니다. 궁금 해서요, 그냥하고 W2K3과 W2k8에 대한 recurse와 제거 항목은 내가 지금 작성한 모든 코드와 같은 일을합니까? 단순화를 위해 모든 것을 단 두 줄로 줄이는 것을 좋아합니다. – Valrok

1

왜 당신은 단순히 재귀 제거 항목

# Remove recursively 
Remove-Item -Path "\\$server\admin$\Temp" -Force -Recurse 
# Create another one 
New-Item -Path "\\$server\admin$\Temp" -Type Directory