PowerTip of the Day from powershell.com上周汇总(四)

读取“神奇密码”

Reading File "Magic Number"

http://powershell.com/cs/blogs/tips/archive/2010/08/09/reading-file-quot-magic-number-quot.aspx

文件类型并不是完全依靠文件的扩展名的,二进制文件有一个内部ID号叫做“神奇密码”(Magic numbers)windows通过这个可以知道这个文件时什么类型。下面的函数用来显示这个“神奇密码”:

function Get-MagicNumber ($path)
{ Resolve-Path $path | Foreach-Object {
$magicnumber = Get-Content -encoding byte $_ -read 4 -total 4
$hex1 = ("{0:x}" -f ($magicnumber[0] * 256 + $magicnumber[1])).PadLeft(4, "0")
$hex2 = ("{0:x}" -f ($magicnumber[2] * 256 + $magicnumber[3])).PadLeft(4, "0")
[string] $chars = $magicnumber| %{ if ([char]::IsLetterOrDigit($_))
{ [char] $_ } else { "." }}
"{0} {1} '{2}'" -f $hex1, $hex2, $chars }
}

 

 

 

显示16进制文件

Displaying Hex Dumps

http://powershell.com/cs/blogs/tips/archive/2010/08/10/displaying-hex-dumps.aspx

powershell不仅可以显示纯文本文件,同时也可以读取二进制文件。下面的方法用来读取一个16机制文件。

function Get-HexDump($path,$width=10, $bytes=-1)
{
$OFS=""
Get-Content -Encoding byte $path -ReadCount $width `
-totalcount $bytes | Foreach-Object {
$byte = $_
if (($byte -eq 0).count -ne $width)
{
$hex = $byte | Foreach-Object {
" " + ("{0:x}" -f $_).PadLeft(2,"0")}
$char = $byte | Foreach-Object {
if ([char]::IsLetterOrDigit($_))
{ [char] $_ } else { "." }}
"$hex $char"
}
}
}

下面是如何调用这个方法:

get-hexdump $env:windir\explorer.exe -width 15 -bytes 150

 

 

删除最近浏览文件夹

Remove Recents Folder

http://powershell.com/cs/blogs/tips/archive/2010/08/12/remove-recents-folder.aspx

windows用一个专门的文件夹保存用户最近打开的文件,通过下面这个命令可以查看这个文件夹。

Dir ([Environment]::GetFolderPath("Recent"))

通过下列命令就可以删除这些文件:

Del "$([Environment]::GetFolderPath("Recent"))\*.*" –whatif

 

 

批量更改文件扩展名

Bulk-Changing File Extensions

http://powershell.com/cs/blogs/tips/archive/2010/08/11/bulk-changing-file-extensions.aspx

只需要下面一行命令就可以更改文件扩展名,主要是通过rename:

Dir $home\ *.ps1 -recurse | Foreach-Object { Rename-Item $_.FullName ([System.IO.Path]::GetFileNameWithoutExtension($_.FullName) + ".old.ps1") -whatif }

-recurse枚举子文件夹。

 

 

显示IECookies

Listing Internet Explorer Cookies

http://powershell.com/cs/blogs/tips/archive/2010/08/13/listing-internet-explorer-cookies.aspx

显示Cookies所在的文件夹:

Dir ([Environment]::GetFolderPath("Cookies"))

在资源管理器中显示:

Explorer ([Environment]::GetFolderPath("Cookies"))

显示内容包含sccookie文件:

Dir ([Environment]::GetFolderPath("Cookies")) | Select-String sc -List

 

 

 

 

以上来自powershell.com

2010年八月份9日到13日的PowerTip of the Day

 

posted @ 2010-08-16 16:42  哥本哈士奇(aspnetx)  阅读(461)  评论(0编辑  收藏  举报