如何使用 powershell 命令从桌面删除“回收站”或“控制面板”等图标?我说的是这个设置:
这就是我要找的场景
我在 Windows 中找到了该设置,但找不到执行此操作的 PowerShell 命令。
答案1
此批处理文件用于更改 Windows 计算机上的各种设置,例如显示或隐藏系统时钟的秒数以及显示或隐藏桌面图标。
首先,该批处理调用一个名为“创建快捷方式”在用户桌面上创建批处理文件的快捷方式并为其分配热键CTRL+ ALT+ 。I
然后批处理文件使用“网络会话”命令来检查它是否以管理权限运行。
如果没有,它将使用 PowerShell 以管理权限启动快捷方式并退出批处理文件。
下一段代码设置了一个变量“钥匙”到特定的注册表项位置,该位置稍后会在代码中用于更改系统设置。
子程序“获取信息”使用 PowerShell 获取 Windows 资源管理器中当前打开的所有文件夹的列表,并将它们存储在名为的数组中“文件夹”。
这将在代码中用于在对系统设置进行更改后恢复文件夹。
然后批处理文件进入标记为“菜单循环”,向用户显示选项菜单,例如“显示系统时钟的秒数”和“隐藏桌面图标”。
用户可以进行选择或按回车键退出批处理文件。
然后将选定的选项作为参数传递给具有相应名称的子程序,例如“菜单_1”,“菜单_2”, ETC。
每个子程序都会使用“注册”命令,修改注册表。
例如,“菜单_1”使用“注册添加”命令来设置“显示系统时钟秒数”注册表中的键为1,显示系统时钟的秒数。
进行更改后,子程序“重启资源管理器”被称为使用 PowerShell 重新启动 Windows 资源管理器。
然后,批处理文件使用 for 循环恢复在进行更改之前打开的所有文件夹。
@echo off
Title Show Or Hide Desktop Icons And Show Or Hide Seconds In System Clock
Color 9E & Mode 82,12 & SetLocal EnableDelayedExpansion
Call:CreateShortcut
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Automatically check & and start the batch file with admin rights
(Net session >nul 2>&1)||(PowerShell start """%userprofile%\Desktop\%~n0.lnk""" -verb RunAs & Exit /B)
::--------------------------------------------------------------------------
Set "Key=HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced"
::--------------------------------------------------------------------------
:GetInfo
@REM Get Opened Folders with PowerShell code in a batch file
Set PSCommand="@((New-Object -com shell.application).Windows()).Document.Folder | ForEach { $_.Self.Path }"
REM Populate the array with existent and opened folders
SetLocal EnableDelayedExpansion
Set /a Count=0
for /f "delims=" %%a in ('Powershell -C %PSCommand%') do (
Set /a Count+=1
Set "Folder[!Count!]=%%a"
)
::===========================================================================
:menuLOOP
::===========================================================================
echo(
echo(
echo( ***************************** Menu ******************************
echo(
@for /f "tokens=2* delims=_ " %%A in ('"findstr /b /c:":menu_" "%~f0""') do (
echo( %%A %%B)
echo(
echo( *****************************************************************
echo( &Set /p Selection=Make a Selection or hit ENTER to quit: || Goto :EOF
echo( & Call:menu_[%Selection%]
GOTO:menuLOOP
::===========================================================================
::---------------------------------------------------------------------------------------------------
:menu_[1] Show Seconds In SystemClock
reg Add "%Key%" /V ShowSecondsInSystemClock /T REG_DWORD /D 1 /F 1>NUL
Call:Restart_Explorer
@rem Restore all closed folders
@for /L %%i in (1,1,%Count%) do Start /MAX Explorer "!Folder[%%i]!"
Exit /B
::---------------------------------------------------------------------------------------------------
:menu_[2] Hide Seconds In SystemClock
reg Add "%Key%" /V ShowSecondsInSystemClock /T REG_DWORD /D 0 /F 1>NUL
Call:Restart_Explorer
@rem Restore all closed folders
@for /L %%i in (1,1,%Count%) do Start /MAX Explorer "!Folder[%%i]!"
Exit /B
::---------------------------------------------------------------------------------------------------
:menu_[3] Hide Desktop Icons
reg add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v NoDesktop /t REG_DWORD /d 1 /f 2>nul
Call:Restart_Explorer
@rem Restore all closed folders
@for /L %%i in (1,1,%Count%) do Start /MAX Explorer "!Folder[%%i]!"
Exit /B
::---------------------------------------------------------------------------------------------------
:menu_[4] Show Desktop Icons
reg delete HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer /v NoDesktop /f 2>nul
Call:Restart_Explorer
@rem Restore all closed folders
@for /L %%i in (1,1,%Count%) do Start /MAX Explorer "!Folder[%%i]!"
Exit /B
::---------------------------------------------------------------------------------------------------
:Restart_Explorer
Powershell -C "gps explorer | spps"
Exit /B
::---------------------------------------------------------------------------------------------------
:CreateShortcut
Powershell ^
"$s=(New-Object -COM WScript.Shell).CreateShortcut('%userprofile%\Desktop\%~n0.lnk'); ^
$s.TargetPath='%~f0'; ^
$s.WorkingDirectory='%~dp0'; ^
$s.IconLocation='colorcpl.exe,0'; ^
$s.HotKey='CTRL+ALT+I'; ^
$s.Save()"
Exit /B
::---------------------------------------------------------------------------------------------------