Powershell命令笔记
2024年12月31日搜索哪些文件含有指定字符串
Get-ChildItem ..\scripts\*azz* |Select-String 571
867161.xml:301:<t id="571">[author]3Y黑客联盟 3B-%s3X[/author][text colwidth='500']Not our best choice, but let's see anyway...\n\n[right]3ZHacker Corp.3X[/right][/text]
.\scripts\*azz*是路径,支持通配符。
571是欲查找的字符串,是正则表达式。如果有空格,要用引号包起来。如果加选项-simplematch,则不作为正则表达式。
输出结果是文件名+行号+该行内容。
Get-ChildItem ..\scripts\*azz* |Select-String 571|select Filename
Filename -------- azz.ext.nom.std.xml azz.gr.interv.ComIA.xml azz.prime.calcule.xml azz.prime.comm.menu.IA.general.xml azz.prime.comm.menu.xml azz.prime.commerce.ComIA.xml azz.prime.commerce.ComIA.xml azz.prime.commerce.IA.xml azz.prime.commerce.IA.xml azz.prime.commerce.IA.xml Azz.status.xml
如果有些文件的一行很长,上一命令的输出很长,这时可以用此命令,仅显示文件名(Filename)。也可以改成显示路径(Path)。
具体有哪些可以选择性显示,用get-property命令查看,MSDN对此的说明很难找。
Get-ChildItem ..\scripts\*azz* |Select-String 571|select Filename|Get-Unique -AsString
Filename -------- azz.ext.nom.std.xml azz.gr.interv.ComIA.xml azz.prime.calcule.xml azz.prime.comm.menu.IA.general.xml azz.prime.comm.menu.xml azz.prime.commerce.ComIA.xml azz.prime.commerce.IA.xml Azz.status.xml
如果有些文件里不止一次出现指定的字符串,则在上例中文件名会显示多次。
此命令则只显示不重复的文件名。
原先的返回值是对象,AsString选项要求把返回值先ToString,然后排序。(在本例中,如果不加AsString,则只会显示第一个对象。)
文件批量重命名
ls *.jpg | %{ mi -LiteralPath $_ ($_.name -replace "Help","帮助") }
%
为ForEach-Object的别名,大括号里面是循环体,$_
是循环变量。
mi
是Move-Item的别名。
Check size of mount points (equivalent to Linux df
)
get-wmiobject Win32_volume |select Name, @{Name="Type"; Expression={@("Unknown", "No Root Directory", "Removable Disk", "Local Disk", "Network Drive", "Compact Disk", "RAM Disk" )[$_.DriveType]}}, @{Name="Capacity GB"; Expression={[Math]::Round($_.Capacity/1024/1024/1024,1)}}, @{Name="Free GB"; Expression={[Math]::Round($_.Freespace/1024/1024/1024,1)}} | Sort-Object -Property Name;
输出是这样
Name Type Capacity GB Free GB ---- ---- ----------- ------- \\?\Volume{848a1e99-9331-11ef-a33c-e454e86b3a3f}\ Local Disk 0.1 0 \\?\Volume{848a1e9c-9331-11ef-a33c-e454e86b3a3f}\ Local Disk 0.6 0.1 B:\ Local Disk 1 1 C:\ Local Disk 101.1 22 D:\ Local Disk 783.2 221 D:\Downloads\ Local Disk 238.5 59.6 F:\ Compact Disk 0 0
See https://learn.microsoft.com/en-us/previous-versions/windows/desktop/legacy/aa394515(v=vs.85)
本文原发表于2013年3月24日。