在 /f netsh wlan show interface 前后抑制 space
Suppress space before and after for /f netsh wlan show interface
好的,所以下面的脚本删除了前后的空格,现在可以使用了。我相信有更好的方法来写这个。
setlocal enableextensions enabledelayedexpansion
for /f "tokens=1-2 delims=:" %a in ('netsh wlan show interface^|find "Name"') do (echo %b >> c:\temp\WLANINT.txt)
for /f "delims=" %x in (c:\temp\WLANINT.txt) do SET WLANINT=%x
:SpaceX
echo "%WLANINT%"
IF "%WLANINT:~0,1%"==" " (SET WLANINT=%WLANINT:~1,-1%)
echo "%WLANINT%"
IF "%WLANINT:~0,1%"==" " GOTO SpaceX
echo "%WLANINT%"
for /l %a in (1,1,100) do if "!WLANINT:~-1!"==" " set WLANINT=!WLANINT:~0,-1!
echo."%WLANINT%"
netsh wlan set profileorder name="%WIFI%" interface="%WLANINT%" priority=1
echo "%WLANINT%"
尝试下一个代码片段(保存为 31194241.bat
;运行 它可能需要管理权限):
@ECHO OFF >NUL
SETLOCAL enableextensions
for /f "tokens=1,* delims=:" %%a in ('
netsh wlan show interface^|find "Name"
') do for /f "tokens=*" %%x in ("%%b") do (
echo netsh wlan set profileorder name="%WIFI%" interface="%%x" priority=1
)
对脚本所做的更改(read more):
- 在所有
%a
、%b
、%c
中将百分号加倍为 %%a
、%%b
、%%c
,以便在 .bat
脚本;
- 嵌套循环而不是创建辅助文件;
for /f "tokens=*"
将离开 trim blak space(s);
- 高效的
netsh
命令仅 echo
仅用于调试目的(在调试后立即将 echo netsh
替换为 netsh
)。
可以使用命令行中的一行来代替批处理:
for /f "tokens=1,* delims=:" %a in ('netsh wlan show interface^|find "Name"') do @for /f "tokens=*" %x in ("%b") do @echo netsh wlan set profileorder name="%WIFI%" interface="%x" priority=1
好的,所以下面的脚本删除了前后的空格,现在可以使用了。我相信有更好的方法来写这个。
setlocal enableextensions enabledelayedexpansion
for /f "tokens=1-2 delims=:" %a in ('netsh wlan show interface^|find "Name"') do (echo %b >> c:\temp\WLANINT.txt)
for /f "delims=" %x in (c:\temp\WLANINT.txt) do SET WLANINT=%x
:SpaceX
echo "%WLANINT%"
IF "%WLANINT:~0,1%"==" " (SET WLANINT=%WLANINT:~1,-1%)
echo "%WLANINT%"
IF "%WLANINT:~0,1%"==" " GOTO SpaceX
echo "%WLANINT%"
for /l %a in (1,1,100) do if "!WLANINT:~-1!"==" " set WLANINT=!WLANINT:~0,-1!
echo."%WLANINT%"
netsh wlan set profileorder name="%WIFI%" interface="%WLANINT%" priority=1
echo "%WLANINT%"
尝试下一个代码片段(保存为 31194241.bat
;运行 它可能需要管理权限):
@ECHO OFF >NUL
SETLOCAL enableextensions
for /f "tokens=1,* delims=:" %%a in ('
netsh wlan show interface^|find "Name"
') do for /f "tokens=*" %%x in ("%%b") do (
echo netsh wlan set profileorder name="%WIFI%" interface="%%x" priority=1
)
对脚本所做的更改(read more):
- 在所有
%a
、%b
、%c
中将百分号加倍为%%a
、%%b
、%%c
,以便在.bat
脚本; - 嵌套循环而不是创建辅助文件;
for /f "tokens=*"
将离开 trim blak space(s);- 高效的
netsh
命令仅echo
仅用于调试目的(在调试后立即将echo netsh
替换为netsh
)。
可以使用命令行中的一行来代替批处理:
for /f "tokens=1,* delims=:" %a in ('netsh wlan show interface^|find "Name"') do @for /f "tokens=*" %x in ("%b") do @echo netsh wlan set profileorder name="%WIFI%" interface="%x" priority=1