【发布时间】:2019-03-28 12:51:34
【问题描述】:
我正在尝试编写一个批处理文件,该文件在运行时会在没有可用互联网的情况下关闭我的计算机。我使用的是 windows 10。批处理文件的内容
@echo off
set "host=192.168.1.1"
ping -n 1 "%host%" | findstr /r /c:"[0-9] *ms"
if %errorlevel% == 0 (
echo Success.
) else (
shutdown -s -t 60 2> D:/Projects/log.txt
)
但是,当“shutdown -s -t 60”命令运行(或任何关闭变体)时,它会打印一个错误(重定向到错误文件),指定 “该进程无法访问该文件,因为它正在被另一个进程使用。”。当我从 cmd 手动运行它时它工作得很好。
【问题讨论】:
-
开始,与您的问题无关。这将是一个更好的 findstr 查询
ping -n 1 "%host%" | findstr "TTL"。但是对于if声明,我宁愿这样做。if "%errorlevel%" == "0" echo success || shutdown -s -t 60 2> "D:\Projects\log.txt"
标签: batch-file cmd shutdown