Windows 构建批处理程序以监视、创建和删除电池日志
我正在努力让Energy Reporter程序保存日期并重命名文件。我是批处理编程的新手。当我的OEMCreate DELL Latitude E5500电池在大约一年后耗尽时,我开始学习这种语言。我正在尝试制作一个程序,允许我监视电池统计报告并将其保存到我的计算机上。我希望能够添加一个功能,以图形显示电池随时间的退化情况。我在下面附上了当前代码。我需要弄清楚如何制作一个基于CMD的文件管理器Windows 构建批处理程序以监视、创建和删除电池日志,windows,batch-file,Windows,Batch File,我正在努力让Energy Reporter程序保存日期并重命名文件。我是批处理编程的新手。当我的OEMCreate DELL Latitude E5500电池在大约一年后耗尽时,我开始学习这种语言。我正在尝试制作一个程序,允许我监视电池统计报告并将其保存到我的计算机上。我希望能够添加一个功能,以图形显示电池随时间的退化情况。我在下面附上了当前代码。我需要弄清楚如何制作一个基于CMD的文件管理器 @echo OFF TITLE Energy-Reporter set CUR_YYYY=%date:
@echo OFF
TITLE Energy-Reporter
set CUR_YYYY=%date:~10,4%
set CUR_MM=%date:~4,2%
set CUR_DD=%date:~7,2%
set CUR_HH=%time:~0,2%
if %CUR_HH% lss 10 (
set CUR_HH=0%time:~1,1%
set CUR_AP="AM"
)
if %CUR_HH% GEQ 12 (
set CUR_HH=CUR_HH-12
set CUR_AP="PM"
)
set CUR_NN=%time:~3,2%
set CUR_SS=%time:~6,2%
set CUR_MS=%time:~9,2%
set SUBFILENAME="%CUR_MM%-%CUR_DD%-%CUR_YYYY%_At_%CUR_HH%-%CUR_NN%-%CUR_SS% %CUR_AP%"
:: BatchGotAdmin
:-------------------------------------
REM --> Check for permissions
IF "%PROCESSOR_ARCHITECTURE%" EQU "amd64" (
>nul 2>&1 "%SYSTEMROOT%\SysWOW64\cacls.exe" "%SYSTEMROOT%\SysWOW64\config\system"
) ELSE (
>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"
set params= %*
echo UAC.ShellExecute "cmd.exe", "/c ""%~s0"" %params:"=""%", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
del "%temp%\getadmin.vbs"
exit /B
:gotAdmin
pushd "%CD%"
CD /D "%~dp0"
:--------------------------------------
IF EXIST "C:\Program Files\Energy-Report\." (
ECHO DIRECTIORY FOUND
) else (
ECHO CREATING "C:\Program Files\Energy-Report\"
mkdir "C:\Program Files\Energy-Report\"
)
COLOR F4
:USER_SELECTER
CLS
ECHO ===============================================================
ECHO Battery logger
ECHO ===============================================================
ECHO Select an option:
Choice /C codq /N /M "[C]reate power log | [O]pen report | [D]elete log | [Q]uit"
If ErrorLevel 4 GoTo :EOF
If ErrorLevel 3 GoTo DELETE_LOG
If ErrorLevel 2 GoTo SAVED_LOGS
If ErrorLevel 1 GOTO REPORT_DATA
PAUSE
GOTO USER_SELECTER
:REPORT_DATA
cd "C:\Program Files\Energy-Report\"
powercfg -energy
REN "Energy-Report.html" "energy-report_%SUBFILENAME%.html"
PAUSE
GOTO USER_SELECTER
:SAVED_LOGS
cd "C:\Program Files\Energy-Report\"
DIR
PAUSE
GOTO USER_SELECTER
:DELETE_LOG
SET /P Entry_name=log to be erased
DELETE "C:\%Program Files%\Energy-Report\%Entry_name%"
PAUSE
GOTO USER_SELECTER
我已经将所有代码上传到我的网站上,供那些对代码开发感兴趣的人使用
如果我没有机会更新堆栈溢出版本,则可以通过运行代码段获得最新版本
修复这些问题,存在
,/%userprofile%\
和设置\p
。另外,我不确定您为什么要使用32位版本的cacls
。我还建议您使用choice.exe
而不是SET/P
,即choice/C codq/N/m“[C]创建电源日志|[O]笔报告|[D]elete log |[Q]uit”
。使用如果错误级别4转到:EOF
,如果错误级别3转到删除日志
,如果错误级别2转到保存日志
,则您的固定cd/%userprofile%\desktop
行。如果存在“file.ext”..
或如果不存在“file.ext”..
%PROCESSOR\u ARCHITECTURE%
为“AMD64”(大写)(至少在我的系统上),因此您的IF
永远不会为真。请更正字符串或使用IF/i
忽略大小写。您创建%SUBFILENAME%
的方法取决于区域设置。为了提供帮助,我们需要查看您的echo%date%
输出(或者您使用修复这些问题,EXSIST
,/%userprofile%\
和SET\p
。此外,我不知道您为什么要使用32位版本的cacls
。我还建议您使用choice.exe
而不是SET/p
,即choice/C codq/N/m”[C]reate power log[O]pen report.[D]elete log |[Q]uit“
。如果错误级别4转到:EOF,如果错误级别3转到删除日志
,如果错误级别2转到保存日志
,则您的固定cd/%userprofile%\desktop
行。如果存在“file.ext”..
或如果不存在“file.ext”..
%“AMD64”(大写)(至少在我的系统上是如此),因此您的IF
将永远不会为真。请更正字符串或使用IF/i
忽略大小写。您创建%SUBFILENAME%
的方式取决于区域设置。为了提供帮助,我们需要查看您的echo%date%
输出(或您使用