C# で GB とか KB とかを全部 MB にする

何を言ってるか分からないと思うが、とにかく 10GB とか 5000KB とかそういう文字列を全部 MB 単位に調整する。

動作例

4GB → 4096
256 → 256
1024KB → 1
10G → 10240

コード

   private static int ExParse(string moji)
   {
       string m = moji.Trim().ToUpper();
       int result = 0;
       if (m.Contains("KB") || m.Contains("K"))
       {
           m = m.Replace("KB", "").Replace("K","").Trim();
           result = (int)(float.Parse(m) / 1024);
       }
       else if (m.Contains("MB") || m.Contains("M"))
       {
           m = m.Replace("MB", "").Replace("M","").Trim();
           result = (int)(float.Parse(m));
       }
       else if (m.Contains("GB") || m.Contains("G"))
       {
           m = m.Replace("GB", "").Replace("G","").Trim();
           result = (int)(float.Parse(m) * 1024);
       }
       else if (m.Contains("TB") || m.Contains("T"))
       {
           m = m.Replace("TB", "").Replace("T","").Trim();
           result = (int)(float.Parse(m) * 1024 * 1024);
       }
       else
       {
           result = (int)(float.Parse(m));
       }

       return result;
   }

PowerShell で複数のホストにPingを打ち続ける

1つのホストだけなら

ping -t hostname

みたいな感じで延々と ping を打てるが、ping を打ちたいマシンが複数ある場合はちょっとむずかしい。
なので、PowerShell でやってみた。

$l=@("host1","host2","host3");
while(1){
    $r=$(get-date).DateTime.ToString();
    $r+="`n";
    foreach($a in $l){
        $r+=ping $a -n 1|select-string -Pattern "Reply|Request";
        $r+="`t$a`n"
    };
    $r+="----";
    $r;
    Start-sleep -s 1;
    $n=ipconfig /flushdns
}

host1, host2, host3 の所に、ホスト名か IP を入れていく。必要に応じて増やす。

実行すると

2012年8月3日 14:06:06
Reply from 172.16.1.1: bytes=32 time<1ms TTL=64
Reply from 172.16.1.2: bytes=32 time<1ms TTL=64
Reply from 172.16.1.3: bytes=32 time<1ms TTL=64

こんな感じで、ずっと Ping が実行され続ける。