간단한 스크립트로 작업하고 있지만 실제로 문제가 있습니다. (며칠 전에 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