我想做一个批处理文件,使秒任务栏(在那里你可以看到时间).
我知道你可以手动做当你打开注册表编辑器并进入
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerAdvanced
并在那里创建一个DWORD-Value(32位)并命名为ShowSecondsInSystemClock并将值设置为1,然后重新启动计算机。
但是现在我想在一个批处理文件中做这个,并且用户被要求输入他的密码(计算机的密码)来继续(以确保它真的是计算机的所有者)。有办法做到吗?
我是批处理的新手,直到现在我只做了基本的东西,我正在收集我的第一次编程经验。
参考@Compo:
的评论您不需要管理员权限来更改注册表
中的设置你不需要重新启动计算机,只需要重新启动资源管理器进程
@echo off
Title Show Or Hide Seconds In System Clock
Color 9E & Mode 80,10 & SetLocal EnableDelayedExpansion
Set "Key=HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerAdvanced"
::--------------------------------------------------------------------------
: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
::---------------------------------
:Restart_Explorer
powershell -C "gps explorer | spps"
Exit /B
::---------------------------------
关于在PowerShell命令中使用别名重新启动资源管理器进程的注释:
gps
是Get-Process
的别名spps
是停止进程