Aug
22
2008
Say you want to sort the output of “ls” (Get-ChildItem) according to file size, date modified or alphabetically, try:
1. Sort according to file size:
ls | sort -property Length
2. Sort according to data modified:
ls | sort -property LastWriteTime
3. Sort according to Name:
ls | sort -property Name
or just simply:
ls
To return a descending list, just add -descending at the back. This applies any stdout pipes, not just Get-ChildItem.
Aug
12
2008
Answer: Yes there is! Prodigy Mark Russinovich wrote the Windows counterpart of UNIX’s indispensable du command called, uhm, du: http://technet.microsoft.com/en-us/sysinternals/bb896651.aspx
Copy du.exe to %Windir%/System32. (The /usr/bin equivalent of Windows).
To obtain the size of top level subdirectories in a directory, with the largest on first in Bash@Linux, we type:
du –max-depth=1 | sort -r
The equivalent for Powershell@Windows would be:
du -q -l 1 | sort -descending
What I would really like to see is Mark’s du.exe be able to return directory sizes in well, “human readable formats”: KiB, MiB, GiB, TiB etc etc. In UNIX’s du, the argument -h does the job.
Aug
11
2008
UNIX users who are so used to grep would ask “how do I grep in Powershell?”. Here’s how:
In Bash we write:
ls | grep “.aspx”
The equivalent in Powershell would be:
ls | where {$_ -match “.aspx”}
Bash@Linux output:
[root@gw-1 easilogin]# ls -all | grep ".aspx"
-rwxrwSrwt 1 root root 682 Jul 29 20:38 AccountBanned.aspx
-rwxrwSrwt 1 root root 77 Jul 29 20:38 AccountBanned.aspx.vb
-rwxrwSrwt 1 root root 2320 Jul 29 20:38 CodeAuthentication.aspx
-rwxrwSrwt 1 root root 1623 Jul 29 20:38 CodeAuthentication.aspx.vb
-rwxrwSrwt 1 root root 1459 Aug 1 14:25 ForgetPassword.aspx
-rwxrwSrwt 1 root root 3563 Aug 1 14:25 ForgetPassword.aspx.vb
-rwxrwSrwt 1 root root 2888 Jul 29 20:38 login.aspx
-rwxrwSrwt 1 root root 8298 Jul 29 20:38 login.aspx.vb
-rwxrwSrwt 1 root root 98 Jun 23 12:54 logout.aspx
-rwxrwSrwt 1 root root 2864 Aug 3 21:12 My_Account.aspx
-rwxrwSrwt 1 root root 1704 Aug 3 21:12 My_Account.aspx.vb
-rwxrwSrwt 1 root root 475 Jul 29 20:38 NotAuthenticated.aspx
-rwxrwSrwt 1 root root 78 Jul 29 20:38 NotAuthenticated.aspx.vb
Powershell@Windows2008 output:
PS Microsoft.PowerShell.Core\FileSystem::\\192.168.1.11\inetpub\wwwroot\easilogin> ls | where {$_ -match ".aspx"}
Directory: Microsoft.PowerShell.Core\FileSystem::\\192.168.1.11\inetpub\wwwroot\easilogin
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 7/29/2008 8:38 PM 682 AccountBanned.aspx
-a--- 7/29/2008 8:38 PM 77 AccountBanned.aspx.vb
-a--- 7/29/2008 8:38 PM 2320 CodeAuthentication.aspx
-a--- 7/29/2008 8:38 PM 1623 CodeAuthentication.aspx.vb
-a--- 8/1/2008 2:25 PM 1459 ForgetPassword.aspx
-a--- 8/1/2008 2:25 PM 3563 ForgetPassword.aspx.vb
-a--- 7/29/2008 8:38 PM 2888 login.aspx
-a--- 7/29/2008 8:38 PM 8298 login.aspx.vb
-a--- 6/23/2008 12:54 PM 98 logout.aspx
-a--- 8/3/2008 9:12 PM 2864 My_Account.aspx
-a--- 8/3/2008 9:12 PM 1704 My_Account.aspx.vb
-a--- 7/29/2008 8:38 PM 475 NotAuthenticated.aspx
-a--- 7/29/2008 8:38 PM 78 NotAuthenticated.aspx.vb