Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 谁能帮我纠正一下吗?每次都会停下来_Python 3.x_Batch File_Wifi - Fatal编程技术网

Python 3.x 谁能帮我纠正一下吗?每次都会停下来

Python 3.x 谁能帮我纠正一下吗?每次都会停下来,python-3.x,batch-file,wifi,Python 3.x,Batch File,Wifi,这是一种检查netsh命令输出中希望测试的字符串(条件)的方法 For/F循环将输出存储在临时文件中,并测试该文件是否存在所需字符串 如果前面的命令返回的Errorlevel为0,则“&&”将执行以下命令,该值在成功找到字符串时返回。 这将有效地对Find的输出进行条件检查,相当于: 如果netsh的真输出包含字符串,则执行… false/fail操作定位为在条件不为true时立即执行 @echo off IF (netsh wlan connect ssid="SRM HOSTELS" nam

这是一种检查netsh命令输出中希望测试的字符串(条件)的方法

For/F循环将输出存储在临时文件中,并测试该文件是否存在所需字符串

如果前面的命令返回的Errorlevel为0,则“&&”将执行以下命令,该值在成功找到字符串时返回。 这将有效地对Find的输出进行条件检查,相当于:

如果netsh的真输出包含字符串,则执行…

false/fail操作定位为在条件不为true时立即执行

@echo off
IF (netsh wlan connect ssid="SRM HOSTELS" name="SRM HOSTELS") GOTO foundit

GOTO end

:foundit
cd "C:\Users\SATYAM\My-GitHub-REPOSITORIES\SRM WIFI LOGIN"

python SRM-WiFi-Auto-Login.py

:end
第一行:尝试连接到WLAN,将STDERR和STOUT(所有输出)重定向到NUL(Nirwana)
第二行:如果失败(没有连接)。。。 第三到第五行:。。。回显消息并退出。

第六行:连接成功,请执行自动登录

IF命令的工作方式与此不同。在帮助文件中没有语法说明你可以做你想做的事情,所以我不确定你在哪里得到那个代码例子。考虑使用一个A/F循环来处理NETSH命令的输出,然后在输出上使用Find或Findstr来确定所需的条件是否为真。我实际尝试的是,我用python创建了一个程序,该程序使用selenium,可以将自身直接连接到我的旅馆wifi(如果在范围内)并注册。所以我在代码中写的是:如果这句话(netsh wlan connect ssid=“SRM hotels”name=“SRM hotels”)是真的,那么就这样做(cd“C:\Users\SATYAM\My GitHub REPOSITORIES\SRM WIFI LOGIN”python SRM WIFI Auto LOGIN.py)否则结束……你能帮忙吗?@satymgoyal:
netsh wlan connect ssid=“SRM hotels”name=“SRM hotels”
不是语句,而是命令,因此永远不会是
True
False
。它最多只能返回一个有用的错误级别。@Stephan那么我应该如何继续编写它呢?我在完成这个文件时面临很多问题。“如果你能帮忙的话,那将非常有帮助。”萨蒂亚姆戈亚尔,也许你遗漏了什么,或者我对上述答案的解释是不够的。For循环执行您选择的Netsh命令,并将该命令的输出导出到文件中。Find命令在临时文件中搜索所选短语的输出,如果找到该短语,则使用Errorlevel转到标签并执行要执行的命令。它们一起起到条件检查的作用上面演示了一种确定您的条件的方法,您只需插入正确的Netsh命令和字符串来查找您的需要。
@echo off

FOR /F "USEBACKQ TOKENS=1,* DELIMS=" %%a IN (`YOUR NETSH COMMAND HERE`) DO (
    ECHO(%%a>>ssidCheck.txt
    FIND /I "YOUR STRING TO FIND HERE" ssidCheck.txt 2>&1>nul && Goto :found
)

:NotFound
ECHO Not found

:cleanup
DEL /Q "ssidCheck.txt"
pause
EXIT

:found
:: REM : Your 'On find, do' actions here.
ECHO found
GOTO :cleanup
netsh wlan connect ssid="SRM HOSTELS" name="SRM HOSTELS" >nul 2>&1
if errorlevel 1 (
  echo not able to connect. Exiting.
  goto :eof
)
echo successfully connected to SRM.
echo Auto-login now...
...