2017-08-17 54 views
0

我创建了一个简单的批处理文件,用于将连接模式更改为无线连接到局域网,反之亦然(我们公司有时与我们的Internet连接有困难,并会建议我们更改连接)。CMD选择查询

下面是代码(我只是在脚本一个新手):

@ECHO off 
cls 
:start 
ECHO. 
ECHO ********************************************* 
ECHO Choose Connection Mode (!!!Case Sensitive!!!) 
ECHO ********************************************* 
ECHO. 
ECHO [W]ireless Mode On 
ECHO [L]ocal Area Connection Mode On 
ECHO [E]xit 
ECHO. 
set choice= 
set /p choice=Select Connection Mode: 
ECHO. 
if not '%choice%'=='' set choice=%choice:~0,1% 
if '%choice%'=='W' goto wireless 
if '%choice%'=='L' goto local 
if '%choice%'=='E' goto end 
ECHO "%choice%" is not valid, try again 
ECHO. 
goto start 
:wireless 
netsh interface set interface "Local Area Connection" DISABLED 
netsh interface set interface "Wireless Network Connection" ENABLED 
ECHO. 
goto end 
:local 
netsh interface set interface "Wireless Network Connection" DISABLED 
netsh interface set interface "Local Area Connection" ENABLED 
goto end 
:end 

能有人请解释这条线?

if not '%choice%'=='' set choice=%choice:~0,1% 

我复制并编辑了我找到的脚本。只需要知道这部分以便更好地理解

回答

0

该问题行将进行检查以确保choice不是空字符串,然后提取它的任何第一个字符,并将其指定回choice。你可以在SS64's page on substring syntax in CMD找到关于子串提取的更多信息。

整个SS64 reference site对查找bash,CMD,PowerShell和其他脚本语言的语法很有用。我把它加入书签...

+0

Got it!非常感谢你! – 7thGen

+0

您可能想要考虑修改此选项以使用['CHOICE'](https://ss64.com/nt/choice.html)命令,该命令也在SS64中记录。 –