抑制/ f netsh wlan show界面之前和之后的空间(Suppress space before and after for /f netsh wlan show interface)

编程入门 行业动态 更新时间:2024-10-23 13:36:31
抑制/ f netsh wlan show界面之前和之后的空间(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%"

OK, so the below script removes the spaces from before and after, and it works now. I am sure there are much better ways to write this.

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 )

对您的脚本所做的更改( 了解更多 ):

在所有%a , %b , %c将百分比符号加倍为%%a , %%b , %%c以便在.bat脚本中使用; 嵌套循环而不是创建辅助文件; for /f "tokens=*"将留下修剪空白空间; 生产的netsh命令仅用于调试目的(使用netsh替换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

Try next code snippet (save as 31194241.bat; running it might require administrative privileges):

@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 )

Changes made to your script (read more):

in all %a, %b, %c doubled percent signs as %%a, %%b, %%c for using in a .bat script; nested loops instead of creating an auxiliary file; for /f "tokens=*" will left trim blak space(s); productive netsh command is merely echoed for debugging purposes only (replace echo netsh with netsh no sooner than debugged).

Instead of batch, one could use an one-liner from command line:

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

更多推荐

本文发布于:2023-08-02 08:10:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1372296.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:抑制   界面   空间   wlan   netsh

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!