Loading

hellohelp

powershell命令教程

powershell命令教程


脚本后缀.ps1

常见命令

1.管道和重定向

ls | format-table name,mode
ls | format-table name,mode > demo.txt      # 添加  (powershell注释也变成了#)
ls | format-table name,mode >> demo.txt     # 增加内容

2.powershell执行外部命令

cmd 中的netstat -ano查看端口信息;route print 打印路由信息,在powershell中一样可以用

notepad
&"notepad"   # 如果加引号就要前边加&,才能识别为环境变量。

$ env:设置的环境变量不会永久生效。如果需要永久设置环境变量,可以使用[System.Environment]::SetEnvironmentVariable("VAR_NAME", "value", [System.EnvironmentVariableTarget]::User)

3.powershell 命令集

get-command    #获取所有命令
get-help get-command    #获取一个帮助
get-process       #获取进程
get-alias         #获取别名
get-history      #获取操作历史
get-date         #获取日历

4.获取别名

gc    # get-command的别名
get-alias -name ls  #查询别名ls的全称
get-alias | where {$_.definition.startswith("Remove")}    #查询以remove开头的别名

5.$的用法

$ _:在管道对象中包含当前对象。$符号主要用于表示变量,变量名以$符号开头

$ env:来访问和设置环境变量

PowerShell中可以使用变量修饰符来指定变量的作用范围,如 $ local $ script $ global $ private

$ 符号也可以用作转义字符,用于在字符串中包含特殊字符

$name="xiaoming"        # 变量用$符号
$n=ls                   #将列表目录给变量n
$a,$b,$c=1,2,3

6.自定义别名

set-alias -name pad -value notepad     # name是别名 ,value是原来的名字。
export-alias demo.psl                  #导出别名
import-alias -force demo.psl           #导入别名

7.powershell自动化变量(自动加载变量) 和环境变量

$home   #这个变量会自动加载,或者叫全局变量
$pid    #进程变量
$$ 		#最后运行的命令
$? 		#最后运行命令是否成功
ls env:    #罗列环境变量
$env:windir  #查看winir变量值
$env:name="ddd"  #临时设置环境变量不会长久保持,关闭powershell这个环境变量就会消失
#永久设置环境变量,可以使用:#.net方式让用户变量永久设置.对当前user用户生效
[System.Environment]::SetEnvironmentVariable("VAR_NAME", "value", "User")  
# machine为系统变量
[System.Environment]::SetEnvironmentVariable("VAR_NAME", "value", "Machine")    
#给PATH环境变量永久增加值
$ newPath = "C:\NewPathToBeAdded"
$ currentPath = [Environment]::GetEnvironmentVariable("PATH", "Machine")
if (! $ currentPath.EndsWith(";")) {  $ currentPath += ";" }
 $ newPath =  $ currentPath +  $ newPath
[Environment]::SetEnvironmentVariable("PATH",  $ newPath, "Machine")
#给path临时增加值
 $ env:PATH += ";C:\NewPathToBeAdded"

8.powershell的脚本文件是ps1,运行时解禁方法

但运行时可能要解禁功能,解禁方法

get-executionpolicy    #查看是否禁用
get-help set-executionpolicy  #查看设置帮助
set-executionpolicy RemoteSigned   #设置执行策略,这个时候可以运行powershell脚本。

9.powershell中条件操作符

-eq等于 -ne不等于 -gt 大于 -lt小于 -le不小于 -contains包含 -not求反

-and -not xor异或

10.if 语句

$num=100
if($num -gt 90) {"1"} else {-1}
if($num -gt 100) {"1"} elseif($num -eq 100) {"0"} else {"-1"}

11.swiitch 语句 开关语句

$num=56
switch ($num) {
{($_ -lt 50) -and ($_ -gt 40)} {"此数值小于50大于40"}
{$_ -eq 50} {"此数值等于50"}
{$_ -gt 50} {"此数字大于50"}
}

12.foreach 语句

$arr=1..10     #1..10代表1到10
foreach ($n in $arr){
	$n*$n+10
}
foreach ($file in dir d:\aa){
	if($file.length -gt 1kb){
	$file.name
	}
}

13.while 语句

$num=13
while($num -gt 10 -and $num -lt 15){
$num
$num=$num+1
}
$num=13
do{
$num
$num=$num+1
}
while($num -gt 10 -and $num -lt 15)

14.break和continue

$num=7
while($num -gt 5){
    if($num -gt 10){
    break
    }
    else{
    $num
    $num+=1
    }    
}

15.for 循环

$sum=0
for($i=1;$i -lt 100;$i++){
	$sum+=$i
}
$sum

16.switch循环

$num=1..10
switch($num){               # 实现遍历的效果
	default{"number=$_"}
	}

17.数组的创建

$arr=1,2,3,4
$arr2=1..10
$arr -is [array]   #判断是否是数组
$arr=@()          #空数组

18.访问数组

$arr=1,"hello",(get-date)
$arr[0]
$arr[0..2]          #取第0项到第2项,也可以倒序[2..0]
$arr[-1]
$arr.count

19.函数

function myping11{
	ping www.baidu.com 
}
myping11

function myping($site){
	ping $site 
}
myping www.baidu.com

write-host是显示命令,类似于echo打印

20.函数返回值

function add($num1,$num2)
{
	$sum=$num1+$num2
	$sum.gettype().fullname
	return $sum
}
$tt=add 3 4
$tt

21.定义文本 转移符号是着重号`

'我的名字是"jack"'
"你好`n恩怨"     #`n是转义换行

22.实现交互read-host读取输入

$in=read-host"请输入"

23.格式化字符串

$name,$age="xiaohao",18
"my name is $name"
"my name is {0},age {1}" -f $name,$age

24.string对象方法

$str="c:\windows\system32\demo.txt"
$str.split("\")[-1]
$str.endwith("txt")
$str.contains("windows")
$str.compareto("c:\windows\system32\demo.txt")   #比较是否相等
$str.indexof("w")
$str.insert(3,"we")
$str.replace("w","W")

25.powershell操作注册表

cd hkcu:               #进入注册表hkey_Current_user
cd hklm: 
Get-itemProperty
new-items

26.常见命令

Get - Service | Where - Object {$_.Status -eq "Running"} 可以筛选出正在运行的服务。
Start - Service - Name "Spooler" :用于启动名为“Spooler”(打印后台处理程序服务)的服务
Stop - Service - Name "Spooler" :则用于停止该服务。
dir –r | select string "searchforthis"   递归搜索某个字符串
使用内存找到五个进程——ps | sort –p ws | select –last 5
递归一系列的目录或文件夹——Get-ChildItem –Force c:\directory –Recurse
在目录里移除所有文件而不需要单个移除——Remove-Item C:\tobedeleted –Recurse
重启当前计算机——(Get-WmiObject -Class Win32_OperatingSystem -ComputerName .).Win32Shutdown(2)
获取当前计算机的BIOS信息——Get-WmiObject -Class Win32_BIOS -ComputerName 
get-location 获取当前工作目录
get-itemProperty -path <路径> -name <属性名>
get-service -name "winupdate"  #查看特定服务
get-service | where-object($_.status -eq "Running")  #过滤运行中的服务
get-process -name "chrome"    #按照名称过滤进程
get-childitem env:  查看环境变量,或者输入$env:path
restart-computer -force
posted @ 2025-06-16 15:39  HordorZzz  阅读(117)  评论(0)    收藏  举报