저는 Powershell을 처음 사용하고있어서 문제가 생겼을 때 도움이됩니다. 나는 Directory에 대한 정보를 사용해, 객체를 반환하는 함수를 만들었습니다 :두 개의 어레이와 값을 객체로 비교
DATE : 2012년 10월 12일
컴퓨터 : PC1
DIRECTORY : C : \의 TEMP
FOLDERSIZE_IN_MB : 70
디렉토리를 반복하여 크기 정보를 수집하고이를 일주일에 한 번 CSV 파일로 내 보냅니다. 나는 DIR 성장에 대한 몇 가지 정보를 얻고 싶은
:
은 여기 내 문제를 시작합니다. 가장 오래된 CSV 파일과 가장 새로운 CSV 파일을 가져와 스크립트를 작성하기 시작했습니다.
$data="C:\LOG\Data"
$data= gci -path $data -filter "*.csv"
$temp=""
$old,[email protected]()
foreach($item in $data){
If((Get-Date $item.LastWriteTime -format ("ddMMyyyy")) -gt $temp){
$new+= $item.FullName |Import-CSV -delimiter ";"
}
Elseif((Get-Date $item.LastWriteTime -format ("ddMMyyyy")) -lt $temp){
$old+= $item.FullName |Import-CSV -delimiter ";"
}
$temp=(Get-Date $item.LastWriteTime -format ("ddMMyyyy"))
}
어떻게 두 개의 배열을 비교하여 두 개의 배열을 비교할 수 있으며 둘 다 동일한 크기의 벡터를 찾을 수 있습니까?
내가 확인하는 방법을 잘 모릅니다 :
IF C : OLD 및 C : \ temp와 NEW의 \의 TEMP 다음 callulate (1- (SIZEOLD/SITZENEW)) * 100.
내가 같은 출력을 얻을 것이 좋을 것이다 :
DATE : 2012년 10월 12일
컴퓨터 : PC1
DIRECTORY : C : \의 TEMP
을 FOLDERSIZE_IN_MB : 80,5
GROWTH_SINCE_LAST_SCAN : 15 %
이것은 내 문제를 해결하기 위해 수행 한 것이지만 견고하지 않으며 해시를 개체로 변환하여 결과를 CSV 형식으로 다시 변환하는 방법을 알지 못합니다.
$ 된 = $ 오래된 | 가장 기대 방법은 gci | measure-object -sum length
기반으로 할 것
$result1=compare $new $old -property Name -includeequal -passthru |WHERE {$_.Sideindicator -eq "=="}
$result2=compare $old $new -property Name -includeequal -passthru |WHERE {$_.Sideindicator -eq "=="}
for($i=0;$i -le $result1.count;$i++){
if($result1[$i].Name -contains $result2[$i].Name){
$Size2=($result2[$i].Group)| select-object -property FolderSize_in_MB
$Size1=($result1[$i].Group)| select-object -property FolderSize_in_MB
if(([int]$Size1.FolderSize_in_MB) -ne "0"){
$growth=(1-(([int]$Size2.FolderSize_in_MB)/([int]$Size1.FolderSize_in_MB)))*100
}
else{
$growth="0"
}
}
else{
}
if($result1[$i]){
$result1[$i].Group| ADD-Member NoteProperty Growth ("{0:n2}"-f $growth +"%")
}
}
이것을 시도하십시오 - http://technet.microsoft.com/en-us/library/ee156812.aspx –