gpt4 book ai didi

file - 简单批处理,用于检查Internet连接并根据结果设置环境变量%internet%

转载 作者:行者123 更新时间:2023-12-04 16:34:06 24 4
gpt4 key购买 nike

我想检查互联网连接,当它失败时,我想将%internet%设置为未连接。如果它适用于connected

echo checking internet connection
Ping www.google.nl -n 1 -w 1000
cls
if errorlevel 1 (set internet=Not connected to internet)
if errorlevel 0 (set internet=Connected to internet)

我也尝试过这个:
@echo off
cls
echo Checking connection
ping -n 1 www.google.com >nul
if errorlevel 1 (
cls
set "%internet%"=="Not connected to internet"
echo %internet%
pause>nul
exit
)

cls
set "%internet%"=="Connected to internet"
echo %internet%
pause>nul
pause

- - - - - - - -编辑 - - - - - -

这是更多的代码。
@echo off
set versienummer=v3.1
title AutoMatic Program Install Stable %versienummer% by eric
color 0a
:CheckOS
IF "%PROCESSOR_ARCHITECTURE%"=="x86" (set bit=x86) else (set bit=x64)
set "windows="
VER | find " 5.1." > nul && set windows=XP
VER | find " 5.2." > nul && set windows=XP 64-Bit or Server 2003 or Server 2003 R2
VER | find " 6.0." > nul && set windows=Vista or server 2008
VER | find " 6.1." > nul && set windows=Win7 or server 2008 R2
VER | find " 6.2." > nul && set windows=Windows 8
VER | find " 6.3." > nul && set windows=Server 2012 R2 or Windows 8.1
if defined windows (
echo %windows%
) else (
echo unknown operating system
)
:ReturnToBaseLine



echo checking internet connection
Ping www.google.nl -n 1 -w 1000
cls
if errorlevel 1 (set internet=Not connected to internet)
if errorlevel 0 (set internet=Connected to internet)
SET Connected=false
FOR /F "usebackq tokens=1" %%A IN (`PING google.com`) DO (
REM Check the current line for the indication of a successful connection.
IF /I "%%A"=="Reply" SET Connected=true
)
REM Check if a success was found.
IF "%Connected%"=="true" SET internet=Connected to internet

REM If we get here, we are not connected.
set internet=Not connected to internet
pause

REM Quit.



color 0a
cls
echo Made By The Amazing
echo.
echo ____ _ ________ ___
echo / __/___(_)___ /_ __/ / ___ / _ \_______ ___ ___ _ ___ ____
echo / _// __/ / __/ / / / _ \/ -_) / // / __/ -_) _ `/ ' \/ -_) __/
echo /___/_/ /_/\__/ /_/ /_//_/\__/ /____/_/ \__/\_,_/_/_/_/\__/_/
echo.
Echo %bit% processor architecture versie %versienummer%
echo %windows%
echo %internet%
echo.

-----------------------------编辑3 ------------------
完毕

最佳答案

稍作调整,您的原始代码即可使用。

echo checking internet connection
Ping www.google.nl -n 1 -w 1000
cls
if errorlevel 1 (set internet=Not connected to internet) else (set internet=Connected to internet)

echo %internet%

问题是,如果 IF ERRORLEVEL n为n 或大于n ,则 errorlevel为TRUE。因此, IF ERRORLEVEL 0始终为true。 IF NOT ERRORLEVEL 1是对errorlevel = 0的测试。 IF %ERRORLEVEL%==0也是,除了前者可以在一个块内使用而后者不能使用。

Nence,您的代码正在设置 not connected,但由于 if条件始终为true,因此以下行将用第二条消息覆盖该值。

注意 set "%internet%"=="Connected to internet"的意思是“设置一个变量,其名称存储在变量 internet中为该值”

因此,如果 internet当时的值为 fred,则 fred将设置为该值,而不是 internet

此外,在一个块语句 (a parenthesised series of statements)中,将解析整个 整个,然后执行,然后执行。块被解析时,该块内的任何%var%都会被该变量的值替换-在执行该块之前-同样的情况适用于FOR ... DO (block)

因此,由于您要使用块设置internet(if - true语句序列,因此您需要使用以下两种常见方法之一来克服此问题:1)使用setlocal enabledelayedexpansion并使用!var!代替%var%来访问var的更改值,或者2)调用子例程以使用更改后的值执行进一步的处理。从技术上讲,第二种方法是使用语句call echo %%internet%%在块中显示internet的更改值。

关于file - 简单批处理,用于检查Internet连接并根据结果设置环境变量%internet%,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27589925/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com