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