我正在尝试编写一个批处理文件,在运行时,如果没有可用的Internet,将关闭我的计算机。我正在使用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”命令运行(或任何关闭变化)时,它会输出一个错误(重定向到errror文件),该错误指定“进程无法访问该文件,因为它正由另一个进程使用“。当我从cmd手动运行它时,它工作得很好。
如果你想测试你的互联网连接是否正在测试互联网上的东西而不是你的路由器。在D:\ Projects \ log.txt中的窗口中向后斜杠。错误消息:“进程无法访问该文件,因为它正由另一个进程使用。”正在发生,因为您正在尝试使用D:\ Projects \ log.txt执行某些操作。在尝试使用log.txt执行某些操作之前,必须完成批处理。 D:\项目必须存在。
@echo off
set host=8.8.8.8
ping -n 1 "%host%" | findstr "TTL"
if %errorlevel% == 0 (
echo Success.
) else (
md D:\Projects\
shutdown -s -t 60 > D:\Projects\log.txt
)
exit /b