我正在创建一个批处理来将我的笔记本电脑变成wifi,这样我每次都可以更轻松地在cmd中输入行。
问题是wifi名称总是被设置为 key = 我输入的名字。
这是我做的:
@echo OFF
set /p option="Enter 1 to create wifi, Enter 2 to stop wifi "
IF %option% EQU 1 (
set /p id="Enter wifi Name:"
set /p key="Set password:"
netsh wlan set hostednetwork mode=allow ssid = %id% key = %key%
netsh wlan start hostednetwork
)
IF %option% EQU 2 (
netsh wlan set hostednetwork mode=disallow
)
timeout /t 5
答案 0 :(得分:11)
虽然交换机和等号之间或者等号和参数之间不应该有空格,但真正的罪魁祸首是因为你在SET /P
语句中使用了IF
。
要纠正这个问题,您需要做两件事:
在Setlocal EnableDelayedExpansion
语句之后将@ECHO OFF
添加到批处理文件的顶部(以便IF
块中的变量可以在执行时扩展)。 / p>
由于我们现在使用的是EnableDelayedExpansion
,因此请使用!!
代替%%
来调用所有变量,例如:
netsh wlan set hostednetwork mode=allow ssid=!id! key=!key!
答案 1 :(得分:2)
得到了解决方案
@echo off
echo What You What To Do ?
echo 1 to create wifi
echo 2 to stop wifi
set /p input=
if %input%==1 goto 1
if %input%==2 goto 2
:1
cls
set /p name=Enter wifi name
set /p pass=Enter wifi password
echo Creating wifi with
echo Name = %name%
echo Password = %pass%
netsh wlan set hostednetwork mode=allow ssid="%name%" key="%pass%"
netsh wlan start hostednetwork
timeout /t 5
exit;
:2
cls
netsh wlan set hostednetwork mode=disallow
exit;
timeout /t 5
答案 2 :(得分:0)
这是另一种方法。我还删除了ssid =和key =周围的空格,因为这可能是一个问题。
@echo OFF
set "option="
set /p "option=Enter a name to create wifi, or just press Enter to stop wifi: "
IF not defined option (
netsh wlan set hostednetwork mode=disallow
goto :EOF
)
set /p key="Set password:"
netsh wlan set hostednetwork mode=allow ssid=%option% key=%key%
netsh wlan start hostednetwork
timeout /t 5
答案 3 :(得分:0)
@echo off
setlocal enabledelayedexpansion
SET /P myvar="Enter variables: "
set argCount=0
for %%x in (%myvar%) do (
set /A argCount+=1
set "argVec[!argCount!]=%%~x"
)
echo Number of processed arguments: %argCount%
for /L %%i in (1,1,%argCount%) do (
echo %%i- "!argVec[%%i]!"
)
调用该函数的结果将是:
function.bat
Enter variables: a b c
1- "a"
2- "b"
3- "c"
通过这种方式,我们可以使用参数调用函数,使用函数另一部分中的参数,并使用SET中的新输入进行迭代。
答案 4 :(得分:-1)
不确定您的问题是什么,这个简化版的代码运行对我来说很好:
@echo OFF
set /p option="Enter 1 to create wifi, Enter 2 to stop wifi "
IF %option% EQU 1 (
echo Option 1
)
IF %option% EQU 2 (
echo Option 2
)
timeout /t 5
这是我的输出 - 批处理文件名为'z.bat'
C:\z>z
Enter 1 to create wifi, Enter 2 to stop wifi 1
Option 1
Waiting for 2 seconds, press a key to continue ...
C:\z>z
Enter 1 to create wifi, Enter 2 to stop wifi 2
Option 2
Waiting for 4 seconds, press a key to continue ...
C:\z>
C:\z>cmd /version
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.