Batch file NT批处理-字符串显示问题
我正在编写NT批处理脚本(我无法在需要运行此脚本的计算机上安装powershell或任何其他更高级的脚本语言) 我需要按计划重新启动服务器(同样,需要在其上运行的机器在构建中没有任务调度器) 因此,我正在进行日期操作,以确定在作为启动脚本运行shutdown.exe时传递给shutdown.exe的超时时间 考虑以下几点:Batch file NT批处理-字符串显示问题,batch-file,Batch File,我正在编写NT批处理脚本(我无法在需要运行此脚本的计算机上安装powershell或任何其他更高级的脚本语言) 我需要按计划重新启动服务器(同样,需要在其上运行的机器在构建中没有任务调度器) 因此,我正在进行日期操作,以确定在作为启动脚本运行shutdown.exe时传递给shutdown.exe的超时时间 考虑以下几点: SET RAt = "04:15" SET RHour = %RAt:~0,2% SET RMin = %RAt:~3,2% 及 RAt的值不会显示,如果我将echo语句改
SET RAt = "04:15"
SET RHour = %RAt:~0,2%
SET RMin = %RAt:~3,2%
及
RAt
的值不会显示,如果我将echo
语句改为显示%RHour%:%RMin%
则RHour的值是4,而不是04-如何固定HH:MM格式字符串值的显示,或强制将数字显示为特定位数?Graham,您的代码当前未使用建议的语法,因此这是您的问题
如果设置RAt=“04:15”
则将名为%RAt%的变量的值设置为“04:15”
设置变量时,建议不要将双引号作为值的一部分,而是在实际使用时使用,即“%VariableName%”
。为了保护VariableValue中的某些字符,或防止在值后面附加隐藏的空白,建议使用双引号将变量对括起来
因此,Set
命令的建议语法为:
设置“VariableName=VariableValue”
我建议您根据上述建议考虑以下类型的修改:
设置“RAt=04:15”
设置“RHour=%RAt:~,2%或~0,2%%或~5,2%
设置“RMin=%RAt:~-2%或~3,2%
当然,如果变量的内容确实已被双引号引用:
SET“RHour=%RAt:~1,2%或~6,2%
设置“RMin=%RAt:~-3,2%或~4,2%
百分比字符之间的集合行末尾的字符串作为注释是可选的,它们可以删除不要在集合
命令中使用空格。这是用于哪个Windows Server版本的?我应该注意,您正在为变量指定引号。最好的做法是不要给变量指定引号,而是使用引号包围set命令,以保护特殊字符和尾随空格<代码>设置“RAt=04:15”
@Squashman令人沮丧的简单!你可以看出我在powershell更快乐!谢谢-如果你回答这个问题,我会把它标记为such@Compo在Win7企业机器上开发,但它将在WinXP嵌入式2002 SP2上运行-是的,真的!
Echo Server will reboot in %Days2Reboot% Days (%Secs2Reboot% seconds), on %GDate% at approximately %RHour:~0,2%:%RMin%