尝试创建一个批处理文件,其中用户输入多少小时,并在 CMD 中安排关闭这些小时

问题描述 投票:0回答:1

我的计算机上有一些针对常见问题制作的批处理文件,在本例中,我有其中的一些:

@ECHO OFF

shutdown -s -t 3600

ECHO ========================================

ECHO     DEVICE WILL SHUT DOWN IN 1 HOUR    

ECHO ========================================

PAUSE

我想对此进行改进,但我基本上对 Batch 一无所知,只知道它是 CMD 控制台的集成脚本语言。我不打算分发这些或任何东西,所以我不会对这些或任何东西进行婴儿防护。我只是希望能够在一个脚本中安排不同的时间。我目前有这个:

@ECHO OFF

ECHO ================================================

ECHO     TYPE IN THE TIME IN HOURS UNTIL SHUTDOWN    

ECHO ================================================

SET /p h=

SET h=(%h% * 3600)

shutdown -s -t %hours%

SET /a h=(%hours% / 3600")

ECHO ================================================

ECHO     DEVICE WILL SHUT DOWN IN %h% HOUR(S)    

ECHO ================================================

PAUSE

...但是有一个语法错误,我完全不知道如何修复。对我来说,批处理的文档和语法比 C# 的文档和语法不太连贯,而且我对此很生疏。我尝试了一些变体,但批处理文件设置和调用变量的方式目前似乎很深奥,而且我在网上没有找到我的具体问题。我知道该批处理基本上是过时的遗物,但单击文件并修复问题很容易。

总结一下,

  • 1:我试图用变量“h”来提示自己多少小时 我想安排关机。
  • 2:我试图将这个数字乘以 3600,即秒数 /shutdown 通常需要的小时。
  • 3:我正在尝试使用这个新金额来安排关闭,因为 例如,如果我输入1小时,则变为(1 * 3600) = 3600,调度 从现在起关闭 3600 秒。
  • 4:我试图通过除以 3600 来撤销这个乘法。
  • 5:我正在尝试创建一个设备将关闭的视觉通知 使用现在除以“h”的“h”小时。

另外:我不知道批处理变量是如何存储的。我不想让任何东西堵塞记忆。我应该在调度和最终 ECHO 完成后告诉 CMD 提示删除这个“h”变量,还是会自动丢弃?

windows batch-file cmd schedule shutdown
1个回答
0
投票

“你在 SET h=(%h% * 3600) 中有一个拼写错误,你没有使用 /a 标志来指定你正在做数学。你应该写成 SET /a h=(%h% * 3600 )”—— 黑暗的东西

© www.soinside.com 2019 - 2024. All rights reserved.