1
我正在处理一个应该很简单但实际存在问题的小脚本。 (我几天前开始学习命令提示符和批处理脚本x.x)。批处理脚本更改系统日期
我需要它时,执行时,将系统年更改为2010年,并再次执行时返回到正确的一年。 研究后,我想出了这个:
@echo off
:: BatchGotAdmin
:-------------------------------------
REM --> Check for permissions
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
REM --> If error flag set, we do not have admin.
if '%errorlevel%' NEQ '0' (
echo Requesting administrative privileges...
goto UACPrompt
) else (goto gotAdmin)
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B
:gotAdmin
if exist "%temp%\getadmin.vbs" (del "%temp%\getadmin.vbs")
pushd "%CD%"
CD /D "%~dp0"
:--------------------------------------
SETX DAY "%Date:~0,2%" /M
SETX MONTH "%Date:~3,2%" /M
SETX YEAR "%DATE:~-4%" /M
IF NOT "%year%"=="2010" (
SETX CPS_YEAR "%year%" /M
date %day%-%month%-2010
) ELSE (
date %day%-%month%-%cps_year%
)
,第一部分是一个脚本,我发现(https://sites.google.com/site/eneerge/scripts/batchgotadmin),要求管理员权限来处理系统变量,这个问题是在我的逻辑。
这是一种工作,但一旦更改一年后,需要执行两次才能更改。并再次两次改变。
任何可能导致此问题的线索?
非常感谢!
为什么使用'SETX'?使用SETX创建的变量在脚本运行期间不可用。请参阅帮助文件的注释2。只需使用SET命令来创建您的变量。 – Squashman
是否有另一种方法来存储脚本运行后继续存在的变量?因为我需要它将当前年份存储在变量中,将系统日期更改为2010年,然后再次执行时将其更改回来。 (对不起,延迟回复) 编辑:暂时,我在代码里面粘贴了2次代码......它有效,但我对自己感觉不好哈哈哈) – Cirelli