PowerShell常用命令

关机重启

PowerShell重启局域网电脑

1
Restart-Computer 

进程相关命令

删除进程:

Stop-Process / kill

PowerShell 脚本 Stop-Process 可以用来结束进程。

结束进程名为 chrome 的进程:

1
2
3
Stop-Process -Name chrome
# kill 是 Stop-Process 的简写,ProcessName 是 Name 的别名。
kill -ProcessName chrome

如果除了关闭你正在看的博客,还顺便要把自己正在编写的代码关闭掉,可以传多个进程名:

1
Stop-Process -Name chrome,code

taskkill 命令

PowerShell 依然能使用 CMD 命令,于是以下命令依旧可以工作:

1
taskkill /f /t /im chrome.exe

终止指定pid进程:

1
taskkill /f /pid  12492 /t 

详见:

其他间接玩法

Process.Kill

Get-Process 能拿到进程对象,于是可以利用管道拿到对象将其关闭:

1
Get-Process -Name chrome | Stop-Process

更间接一点,遍历所有拿到的 Process 对象,然后杀掉:

1
Get-Process -Name chrome | Foreach-Object { $_.Kill() }

查询端口

查询端口命令:

1
netstat -ano |findstr  "端口号"

powershell 压缩和解压zip

创建zip

1
Compress-Archive -Path D:\test -DestinationPath E:\test.zip

解压zip

1
Expand-Archive -Path D:\test.zip -DestinationPath F:\test

用powershell 启动vim编辑器

在PowerShell中,输入命令 :

1
Set-ExecutionPolicy RemoteSigned
1
继续输入命令 new-item -path $profile -itemtype file -force

这时候这个文件是个空文件,需要你进一步编辑,这个时候可以直接用 notepad命令来编辑,这可能是你最后一次在PowerShell里调用GUI文本编辑器,要珍惜(因为你以后可能都直接在PowerShell里用Vim了)

进入显示的power shell目录中找到配置文件

在这里主要是添加alias让系统知道你敲vim的时候为了调用之前你安装好的那个vim.exe。这时候就要用上你之前几下的安装路径了。敲完上面那行命令以后就会打开一个notepad,在里面敲进去如下:

1
2
3
4
5
6
7
8
9
10
set-alias vim "此处为vim的安装路径"  

Function Edit-Profile
{
vim $profile
}
Function Edit-Vimrc
{
vim $HOME_vimrc
}

超级隐藏文件的建立与再现

超级隐藏文件不但带有常规隐藏的属性,同时还带有系统属性,它本来是为保护系统文件而设立的,但如果用户愿意的话,其实也可以将自己建立的任何文件进行“超级隐藏”。这里介绍两种方法:

一是用第三方的软件FAR Manager(下载地址:/download.php?l=en.)来完成。安装并运行该软件后,在窗口中选择要进行超级隐藏的文件或文件夹,然后按下“Ctrl+A”组合键弹出属性管理控制台窗口,选中隐藏属性项“Hidden”和系统属性项“System”,最后点击“Set”按钮使设置生效(图3)。之后,即便是用前文中提到的方法,也无法显示该文件或文件夹。

2110A-CJYC-3

二是利用Windows自身的命令来完成。首先打开要隐藏的文件所在的文件夹(这里假设我们要隐藏test.txt文件),然后按下“Alt+D”组合键并输入cmd.exe后回车,在随后打开的命令提示符窗口中,执行“attrib +S +H test.txt”命令即可(图4)。

2110A-CJYC-4

注意,实际使用时要将命令中的test.txt更换为要隐藏的文件名。

使用超级隐藏法隐藏的文件,可以在FAR Manager或WinRAR软件中查看,但在Windows的文件资源管理器中,需要用“attrib -S -H <文件名>”命令将其超级隐藏属性去掉,或者是打开“文件夹选项”窗口,在“查看”列表中取消对“隐藏受保护的操作系统文件”的选择,才能查看得到。

服务管理(Service Management)

获得服务

1
Get-Service

实例:

1
Get-Service -Name M*

停止服务

1
Stop-Service

创建新服务

1
New-Service

设置服务

1
Set-Service

开启服务

1
Start-Service

停止服务

1
Stop-Service

暂停服务

1
Suspend-Service

恢复服务

1
Resume-Service

重启服务

1
Restart-Service

删除防火墙记录

1
删除C:\ProgramData\Microsoft\Windows Defender\Scans\History\Service\DetectionHistory下的所有子文件夹 然后重启机器就可以了。

Powershell-查询主机名及IP地址

Dos查询IP地址及主机名信息:

1
2
3
1.ipconfig | find "IPv4"
2.hostname
3.systeminfo |find "主机名:"

默认很多人总是习惯用DOS命令查询,其实Powershell实现起来也是很简单的。如下:

Powershell查询IP地址及主机名信息:

1
2
3
1.foreach($ipv4 in (ipconfig) -like '*IPv4*') { ($ipv4 -split ' : ')[-1]}
2.Get-WMIObject Win32_ComputerSystem |select Name
3.$env:COMPUTERNAME

Windows注册程序服务并开机启动

一、使用Winsw注册服务

1、服务说明

使用 winsw,可以简单实现。winsw 是用 c# 写的一个小工具。
所以运行需要”.NET framework“,现在 Win10 上都自带.NET framework4.0

原理其实是 winsw.exe 本身可以注册为 windows 服务,可以设置为自启动。
当他启动后,然后根据和此 exe 同名的 xml 文件中的配置,执行设置的命令,达到自启动的效果。

winsw 的开源地址:https://github.com/winsw/winsw
目前稳定版本是 v2.11.0,下载链接:https://github.com/winsw/winsw/releases/tag/v2.11.0
在这里插入图片描述
根据.Net Framework 版本下载即可,如:WinSW.NET4.exe
sample-minimal.xml 是一个最小配置的列子。
sample-allOptions.xml 是一个全部可配置参数的例子。

2、查看.NET Framework 版本

1、在地址栏上输入 “C:\Windows\Microsoft.NET\Framework”,按回车键
2、可以看到.NET Framework 版本。可以看到最高版本为 4.0
在这里插入图片描述

3、修改及设置

1、把 winsw.exe 改名为有意义名称,比如 apiServer.exe。
因为注册后服务启动的 exe 就是这个 exe,所以修改后便于管理和识别。
修改 sample-minimal.xml 为和 exe 同名文件,如 apiServer.xml
把 apiServer.exe 和 apiServer.xml 放在和 jar 相同目录即可。

2、xml 官方配置:

1
2
3
4
5
6
7
8
9
<service>
<id>apiServer</id>
<name>apiServer</name>
<description>Api 服务</description>
<startmode>Automatic</startmode>
<executable>java</executable>
<arguments>-c frpc.ini</arguments>
<log mode="roll"></log>
</service>

frp 配置:

1
2
3
4
5
6
7
8
9
10
11
<service>
<id>winxfs</id>
<name>winxfs</name>
<description>Winxfs Service</description>
<executable>winnfsd</executable>
<arguments>"-c frpc.ini" /winnfs</arguments>
<onfailure action="restart" delay="60 sec"/>
<onfailure action="restart" delay="120 sec"/>
<logmode>append</logmode>
<logpath>logs</logpath>
</service>

相关参数说明如下:

  1. id:安装 windows 服务后的服务 ID,必须是唯一的。
  2. name:服务名称,也必须是唯一的。一般和 id 一致即可。
  3. description:服务说明,可以使用中文,可做备注使用。
  4. executable:执行的命令,比如启动 springboot 应用的命令 java。
  5. arguments:命令执行参数,比如 包路径,类路径等。

4、安装服务

以管理员身份执行 cmd,切换到 exe 所在目录,执行如下命令即可。

1
apiServer.exe install

除 install 之外,还有如下命令:

  • uninstall:删除服务
  • start:启动服务
  • stop:停止服务
  • restart:重启服务
  • status:查看状态

二、使用NSSM注册服务

(一)nssm简介

SSM(the Non-Sucking Service Manager)是Windows环境下一款免安装的服务管理软件,它可以将应用封装成服务,即将普通exe程序或者jar包应用,封装成服务使之像windows服务可以设置自动启动等。并且可以监控程序运行状态,程序异常中断后自动启动,实现守护进程的功能。同类型的工具还有微软自己的srvany,不过nssm更加简单易用,并且功能强大。

它的特点如下:

  • 支持普通exe程序(控制台程序或者带界面的Windows程序都可以)
  • 安装简单,修改方便
  • 可以自动守护封装了的服务,程序挂掉了后可以自动重启

官网地址:https://nssm.cc/

(二)NSSM使用及配置详解

1、下载地址

官网地址:https://nssm.cc/download

2、解压压缩包,根据系统位数选择64或32位程序

image-20220219094605675

image-20220219095328967

3、打开命令行,运行nssm程序

管理员权限打开命令行工具,切换到nssm.exe所在路径,运行 nssm install,打开程序配置界面

image-20220219095803811

配置项说明:

1
2
3
4
- Path:运行应用程序的程序
- Startup directory:应用程序所在的目录
- Arguments:应用运行的参数
- Service name:生成服务的名称

最后点击install service 完成windows服务安装,在windows服务列表就能看到创建的服务了。

4、常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
nssm install servername //创建servername服务,弹出配置界面

nssm start servername //启动服务

nssm stop servername //暂停服务

nssm restart servername //重新启动服务

nssm remove servername //删除创建的servername服务

nssm edit servername//更改servername服务,弹出修改界面

nssm set servername 参数名 参数值 //设置服务参数值

sc delete servername//windows删除服务命令
  • 直接使用windows的服务管理也可以实现服务的操作,服务右键属性 - 恢复即可设置服务挂掉重启等内容。

(三)实战:将应用做成服务

1、程序说明

这里演示将net6的web项目制作成windows服务

应用的启动命令是:dotnet WebApplication_nssm.dll --urls=http://*:8888/ --port=8888

2、安装服务

1
nssm install
  • Path:C:\Program Files\dotnet\dotnet.exe
  • Startup directory:D:\TechLearn\001、Tools--nssm\WebApplication_nssm\bin\Debug\net6.0
  • Arguments:WebApplication_nssm.dll --urls=http://*:8888/ --port=8888
  • Service name:webapp8888

最后点击install service 完成windows服务安装,在windows服务列表就能看到创建的服务了。

image-20220223155047231

image-20220223160017209

3、管理服务

(1)启动服务

1
2
D:\nssm-2.24\win64>nssm start webapp8888
webapp8888: START: 操作成功完成。

image-20220223160348039

image-20220223160319928

(2)关闭服务

1
2
D:\nssm-2.24\win64>nssm stop webapp8888
webapp8888: STOP: 操作成功完成。

image-20220223160954390

(3)重启服务

如果服务未启动就会直接启动,启动的会重启。

1
2
3
4
5
6
7
8
D:\nssm-2.24\win64>nssm restart webapp8888
webapp8888: STOP: 服务尚未启动。
webapp8888: START: 操作成功完成。

D:\nssm-2.24\win64>nssm restart webapp8888
webapp8888: STOP: 操作成功完成。
webapp8888: START: 操作成功完成。
1234567

(4)修改服务

输入命令,修改配置,不能修改服务名

1
D:\nssm-2.24\win64>nssm edit webapp8888

image-20220223163535494

(5)删除服务

删除有二次确认,删除之后服务就找不到了,需要重新安装

1
2
D:\nssm-2.24\win64>nssm remove webapp8888
Service "webapp8888" removed successfully!

image-20220223163705348

(四)命令行操作

创建服务并定义程序的路径:

1
nssm install SnareServie "%MDHIS2_HOME%/MDHIS_WebClient.cmd"

接下来是这一系列的命令来建立各种参数:

1
2
3
4
5
6
7
8
9
10
11
nssm set SnareServie AppDirectory %MDHIS2_HOME%

nssm set SnareServie DisplayName Snare

nssm set SnareServie Start SERVICE_AUTO_START

nssm set SnareServie DependOnService MSSQLSERVER

nssm set SnareServie AppNoConsole 1

nssm set SnareServie AppStopMethodConsole 30000

为安全起见,我会将Start参数移到该系列的末尾,以防止nssm在建立其余参数(DependOnServiceAppNoConsoleAppStopMethodConsole)之前启动服务的可能性。

三、cmd下使用sc管理Windows服务

在这里插入图片描述

注册服务

在这里插入图片描述

1
2
# 注册服务
sc create ServiceName binPath= 路径 start= auto

查看服务

1
2
# 查看服务
sc query 服务名

启动服务

1
2
# 启动服务
sc start serverName

停止服务

1
2
# 停止服务
sc stop serverName

卸载服务

1
2
3
# 删除SangforPXEx服务
sc delete SangforPXEx
12

PowerShell巡检主机获取CPU占用、内存使用、硬盘情况的脚本

Windows底下用PowerShell写的获取CPU核数、占用率;内存可用内存大小(GB)、使用率;硬盘总空余大小(GB),使用率

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# 获取硬盘空余空间
function get_disk_free(){
$disk = Get-WmiObject -Class win32_logicaldisk
$freedisk = $disk.FreeSpace
$freedisk =(($freedisk | Measure-Object -Sum).sum /1gb)
return @($freedisk)
}
echo "{'get_disk_free':'$(get_disk_free)'}"

# 获取磁盘使用率
function get_disk_used_percent(){
$disk = Get-WmiObject -Class win32_logicaldisk
$allSpace = $disk.Size
$allSpace =(($allSpace | Measure-Object -Sum).sum /1gb)
$FreeSpace = $disk.FreeSpace
$FreeSpace =(($FreeSpace | Measure-Object -Sum).sum /1gb)
$disk_used_percent = (($FreeSpace/$allSpace)*100)
return @($disk_used_percent)
}
echo "{'get_disk_used_percent':'$(get_disk_used_percent)'}"

function get_memory_count(){
"{0:N2}GB" -f (((Get-WmiObject -Class Win32_PhysicalMemory).capacity | Measure-Object -Sum).sum /1gb)}
echo "{'memory': '$(get_memory_count)'}"

#获取主机ip
function get_ip(){
((Get-WmiObject win32_networkadapterconfiguration -filter "ipenabled = 'true'").IPAddress -notlike ":")[2]}
echo "system_ip:$(get_ip)"

#获取主机系统版本
function get_type(){
Get-WmiObject -Class Win32_OperatingSystem | Select-Object -ExpandProperty Caption}
echo "system_version:$(get_type)"


# 获取 CPU 逻辑核心数
function get_logical_cpu_cnt () {
$cpu_info = Get-WmiObject win32_processor
return @($cpu_info).count * $cpu_info.NumberOfLogicalProcessors
}
echo "cpu number:$(get_logical_cpu_cnt)"

# 获取 可用内存
function free_physics_ram(){
$ops = Get-WmiObject -Class Win32_OperatingSystem
#"可用内存(MB): {0}" -f ([math]::round($ops.FreePhysicalMemory / 1kb, 2))
$ops =([math]::round(($ops.FreePhysicalMemory / (1mb)), 2))
return @($ops)
}
echo "free_physics_ram:$(free_physics_ram) GB"

# 获取CPU使用率
function cpu_percent()
{
$cpu = Get-WmiObject -Class Win32_Processor
$Havecpu = $cpu.LoadPercentage
return @($Havecpu)
}
echo "cpu_percent:$(cpu_percent)%"

# 获取内存使用率
function phy_percent()
{
$men = Get-WmiObject -Class win32_OperatingSystem
$Allmen = ($men.TotalVisibleMemorySize / 1KB)
$Freemen = ($men.FreePhysicalMemory / 1KB)
$Permem = ((($men.TotalVisibleMemorySize-$men.FreePhysicalMemory)/$men.TotalVisibleMemorySize)*100)
return @($Permem)
}
echo "phy_percent:$(phy_percent)%"

设置环境变量:

Powershell下设置环境变量

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#Powershell设置环境变量

#查看所有环境变量
ls env:

#搜索环境变量
ls env:NODE*

#查看单个环境变量
$env:NODE_ENV

#添加/更新环境变量
$env:NODE_ENV=development

#删除环境变量
del evn:NODE_ENV

获取环境变量

1
2
3
4
获取机器Path变量
[Environment]::GetEnvironmentVariable('Path','Machine')
获取用户Path变量
[Environment]::GetEnvironmentVariable('Path','User')

设置环境变量

  1. 先定义变量:
1
$path = [Environment]::GetEnvironmentVariable('Path', 'Machine')
  1. 设置新Path变量路径:
1
2
替换原有Path变量:
$replacepath = '%JAVA_HOME%' + '\bin;' + $path # 或者:$replacepath = $Env:JAVA_HOME + '\bin;' + $path
1
2
在原有Path追加变量:
$appendpath = ';'+= '%JAVA_HOME%' + '\bin;' + $path # 或者:$appendpath = $Env:JAVA_HOME + '\bin;' + $path
  1. 设置Path变量:
1
[Environment]::SetEnvironmentVariable('Path', $replacepath, 'Machine')

完整命令

1
2
3
$path = [Environment]::GetEnvironmentVariable('Path', 'Machine')
$newpath = '%JAVA_HOME%' + '\bin;' + $path # 或者:$newpath = $Env:JAVA_HOME + '\bin;' + $path
[Environment]::SetEnvironmentVariable('Path', $newpath, 'Machine')

Windows使用cmd命令行查看、修改、删除与添加环境变量

1
2
3
4
5
6
7
8
9
10
11
#查看所有环境变量     
set

#查看单个环境变量
set NODE_ENV

#添加/更新环境变量
set NODE_ENV=development

#删除环境变量
set NODE_ENV=
1
2
3
4
5
6
7
8
9
10
11
12
方法1、永久生效

wmic ENVIRONMENT create name="【变量名】",username="<system>",VariableValue="【变量值】"

方法2、永久生效

setx path "%path%;【新路径】"

方法3、仅本次生效

set path=%path%;【新路径】

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
set 设置临时环境变量
1、查看所有环境变量:cmd输入set查看

2、查看环境变量:set path

3、修改环境变量:set 变量名=变量内容 例如:set path = "XXXX",覆盖path的值

4、添加环境变量:set 变量名=变量内容

setx 可以永久设置环境变量
1、setx /m 永久设置环境变量

2、setx /m name "value"

3、setx -m 永久追加环境变量

4、setx -m name "%name%;value"

您可以在cmd中使用SET,显示或设置环境变量。

Tips:刚装好的系统,Path的默认值为:%SystemRoot%/system32;%SystemRoot%;%SystemRoot%/System32/Wbem;%SYSTEMROOT%/System32/WindowsPowerShell/v1.0

一、查看环境变量

1、查看当前所有可用的环境变量

输入 set 即可查看。

img

2、查看某个环境变量

输入 “set 变量名”即可。比如想查看path变量的值,即输入 set path

img

二、修改环境变量

注意:所有的在cmd命令行下对环境变量的修改只对当前窗口有效,不是永久性的修改。也就是说当关闭此cmd命令行窗口后,将不再起作用。

永久性修改环境变量的方法有两种:一种是直接修改注册表,另一种是通过我的电脑-〉属性-〉高级,来设置系统的环境变量(查看详细)。

1、修改环境变量

输入 “set 变量名=变量内容”即可。比如将path设置为“d:\nmake.exe”,只要输入set path=”d:\nmake.exe”。

注意,此修改环境变量是指用现在的内容去覆盖以前的内容,并不是追加。比如当我设置了上面的path路径之后,如果我再重新输入set path=”c”,再次查看path路径的时候,其值为“c:”,而不是“d:\nmake.exe”;“c”。

2、设置为空:

如果想将某一变量设置为空,输入“set 变量名=”即可。

如“set path=” 那么查看path的时候就为空。注意,上面已经说了,只在当前命令行窗口起作用。因此查看path的时候不要去右击“我的电脑”——“属性”……..

3、给变量追加内容

输入“set 变量名=%变量名%;变量内容”。(不同于3,那个是覆盖)。

如,为path添加一个新的路径:

1
输入“ set path=%path%;d:\nmake.exe”即可将d:\nmake.exe添加到path中

再次执行”set path=%path%;c:”,那么,使用set path语句来查看的时候,将会有:d:\nmake.exe;c:,而不是像第3步中的只有c:。

三、一些常用的环境变量

  • %AllUsersProfile%: 局部 返回所有“用户配置文件”的位置。 {所有用户文件目录 – C:\Documents and Settings\All Users}
  • %AppData%: 局部 返回默认情况下应用程序存储数据的位置。 {当前用户数据文件夹 – C:\Documents and Settings\wy\Application Data}
  • %Cd%: 局部 返回当前目录字符串。
  • %CmdCmdLine%: 局部 返回用来启动当前的 Cmd.exe 的准确命令行。
  • %CmdExtVersion%: 系统 返回当前的“命令处理程序扩展”的版本号。
  • %CommonProgramFiles%: {文件通用目录 – C:\Program Files\Common Files}
  • %ComputerName%: 系统 返回计算机的名称。 {计算机名 – IBM-B63851E95C9}
  • %ComSpec%: 系统 返回命令行解释器可执行程序的准确路径。 C:\WINDOWS\system32\cmd.exe
  • %Date%: 系统 返回当前日期。使用与 date /t 命令相同的格式。由 Cmd.exe 生成。有关 date 命令的详细信息,请参阅 Date。
  • %ErrorLevel%: 系统 返回最近使用过的命令的错误代码。通常用非零值表示错误。
  • %HomeDrive%: 系统 返回连接到用户主目录的本地工作站驱动器号。基于主目录值的设置。用户主目录是在“本地用户和组”中指定的。 {当前用户根目录 – C:}
  • %HomePath%: 系统 返回用户主目录的完整路径。基于主目录值的设置。用户主目录是在“本地用户和组”中指定的。 {当前用户路径 – \Documents and Settings\wy}
  • %HomeShare%: 系统 返回用户的共享主目录的网络路径。基于主目录值的设置。用户主目录是在“本地用户和组”中指定的。
  • %LogonSever%: 局部 返回验证当前登录会话的域控制器的名称。
  • %Number_Of_Processors%: 系统 指定安装在计算机上的处理器的数目。 {处理器个数 – 1}
  • %Os%: 系统 返回操作系统的名称。Windows 2000 将操作系统显示为 Windows_NT。 {操作系统名 – Windows_NT}
  • %Path%: 系统 指定可执行文件的搜索路径。
  • %PathExt%: 系统 返回操作系统认为可执行的文件扩展名的列表。
  • %Processor_Architecture%: 系统 返回处理器的芯片体系结构。值: x86,IA64。 {处理器芯片架构 – x86}
  • %Processor_Identfier%: 系统 返回处理器说明。
  • %Processor_Level%: 系统 返回计算机上安装的处理器的型号。 {处理器型号 – 6}
  • %Processor_Revision%: 系统 返回处理器修订号的系统变量。 {处理器修订号 – 0905}
  • %ProgramFiles%: {程序默认安装目录 – C:\Program Files}
  • %Prompt%: 局部 返回当前解释程序的命令提示符设置。由 Cmd.exe 生成。 $P$G
  • %Random%: 系统 返回 0 到 32767 之间的任意十进制数字。由 Cmd.exe 生成。
  • %SystemDrive%: 系统 返回包含 Windows XP 根目录(即系统根目录)的驱动器。 {系统根目录 – C:}
  • %SystemRoot%: 系统 返回 Windows XP 根目录的位置。 {系统目录 – C:\WINDOWS}
  • %Temp%: 系统和用户 返回对当前登录用户可用的应用程序所使用的默认临时目录。有些应用程序需要 TEMP,而其它应用程序则需要 TMP。 {当前用户临时文件夹 – C:\DOCUME1\wy\LOCALS1\Temp}
  • %Time%: 系统 返回当前时间。使用与 time /t 命令相同的格式。由 Cmd.exe 生成。9:16:25.05
  • %UserDomain%: 局部 返回包含用户帐户的域的名称。 {包含用户帐号的域 – IBM-B63851E95C9}
  • %UserName%: 局部 返回当前登录的用户的名称。 {当前用户名 – wy}
  • %UserProfile%: 局部 返回当前用户的配置文件的位置。 {当前用户目录 – C:\Documents and Settings\wy}
  • %WinDir%: 系统 返回操作系统目录的位置。 {系统目录 – C:\WINDOWS}

清理Powershell记录

右键–属性–选项,里面有个命令记录设置下就可以了(win键+x唤起power shell )

image-20221128130222077

或者运行命令:

1
Remove-Item (Get-PSReadlineOption).HistorySavePath

清空回收站:

1
Clear-RecycleBin