添加path环境变量参数时忘记加”;”分号了,红色行为输入错误,如何删除或修改?谢
PS C:\Users\johnny li> $env:path -split ‘;’
%SystemRoot%\system32\WindowsPowerShell\v1.0\
C:\Windows\system32
C:\Windows
C:\Windows\System32\Wbem
C:\Windows\System32\WindowsPowerShell\v1.0\
C:\Windows\sysWOW64
C:\Program Files (x86)\QuickTime\QTSystem\
C:\Program Files (x86)\Common Files\Hitachi ID\
C:\Program Files\Common Files\Hitachi ID\
C:\Program Files (x86)\Nmap%programfiles%\windows nt\accessories%programfiles%\windows nt\accessoriesC:\Program Files\Windows NT\Accessories
$oldPath = $env:Path -split ';' $invalidPath = $oldPath | Where-Object { -not(Test-Path ([environment]::ExpandEnvironmentVariables($_))) } if($invalidPath){ Write-Host "请选择你想删除的环境变量项!" $selectedPath = $invalidPath | Out-GridView -Title "请选择你想删除的环境变量项!" -PassThru if($selectedPath){ $newPath = $oldPath | Where-Object { $selectedPath -notcontains $_ } Write-Host '当前会话中的$env:Path已保存' $env:Path = $newPath -join ';' # 如果想将环境变量的更改保存进系统,请去掉下面一行的注释(需要管理员权限) # [environment]::SetEnvironmentVariable('Path',$env:Path,'Machine') } }
感谢感谢,这几天抽空看了回复,想读懂,正在研究[environment]::ExpandEnvironmentVariables($_)和$selectedPath -notcontains $_都是啥意思(如能详解感激不尽),目前看是找出有错误的属性值然后加“;”后再重写进path里,是这样吗?
首先根据分号分割;分割以后我想判断每一个路径是不是存在。这里有讲究了,因为环境变量中可能有%windir%这样的环境变量占位符,我想在PowerShell判断,就必须把它替换成类似于C:\windows这样的路径。紧接着,test-path判断文件夹是否存在,如果不存在交给用户选择是否想删除某一项。这里为什么要交给用户判断,因为默认的环境变量中有一些路径是预留的,本身不存在,我用脚本判断不出来,就需要人为参与了。
思路我能明白了,可是[environment]::ExpandEnvironmentVariables($_)和$selectedPath -notcontains $_这两条语句是干什么用的?我想读懂他们,哪里有这方面的资料?可以发我邮箱lixu0113@126.com,目前正在学习powershell的初级阶段,还望赐教。感谢感谢!
谁来回答这个简单的问题???
初学者表示看不懂,也表示不简单.