使用 DOS Windows 命令行 FOR 编辑一个 txt 文件
edit a txt file with DOS Windows command line FOR
在使用 dos 命令收集数据和 'findstr' 和 'for ' 之后,我现在有一个如下所示的数据文件:
string9
40%
string1
55%
string12
78%
...at least 9 strings more strings with their associated percentages
我需要将数据格式化为:
string9 40%
string1 55%
string12 78%
我知道 FOR 命令可能是我需要的。如果我可以将退格键传递到每一行的开头,那就太好了。
这是让我走到这一步的代码。
@echo off
netsh wlan show networks mode=BSSI > rssifile.txt
findstr /V "Channel Interface There Network Authentication Encryption BSSID Radio Channel rates" rssifile.txt >rssifil1.txt
if exist closer.txt del closer.txt /Q
if exist closer01.txt del closer01.txt /Q
if exist clos0001.txt del clos0001.txt /Q
for /F "usebackq tokens= 1,2 delims=:" %%G IN ("rssifil1.txt") DO echo %%H >>closer.txt
more +1 closer.txt > closer01.txt
这是一项正在进行的工作。以下是我正在尝试的一种可能方法:
rem pseudo code for sorting and collecting RSSI %
set nayme="nayme0"
set /A Cnt=1
If Cnt < 13
for /F "tokens" %%a in (%InFile%) do (
echo nayme %%a >> clos0001.txt
if nayme="nayme0"
nayme=nayme1
goto far
if nayme="nayme1"
nayme=nayme2
goto far
if nayme="nayme1"
nayme=nayme2
goto far
if nayme="nayme1"
nayme=nayme2
goto far
:far
这种方法,上面的伪编码涉及按顺序放置我正在监视的 12 个 RSSI 名称。
文件看起来像这样:
nayme0 77%
nayme1 84%
nayme2 88% ...
最终结果将是一个单行文件,该文件将附加到另一个文件。
按顺序收集 12 个百分比将消除列出 nayme / SSID。
文本文件中的行将如下所示:
3:14 PM 57% 67% 97% 36% 47% 88% 95% 22% 85% 77% 33% 79%
这是我对你最初问题的建议。
@echo off
setlocal enabledelayedexpansion
set line=
for /f "tokens=1,2 delims=:" %%i in ('netsh wlan show networks mode^=BSSID ^|findstr "^SSID Signal"') do (
echo %%i|find "SSID" >nul && (echo(!line! & set "line=%%j") || (set "line=!line!%%j" )
)
echo %line%
明天休息-这里已经很晚了...
问题:你看的是已知列表还是应该是动态的?如果与其中之一有一个星期的连接并且您不时松开它,您会怎么做?
在使用 dos 命令收集数据和 'findstr' 和 'for ' 之后,我现在有一个如下所示的数据文件:
string9
40%
string1
55%
string12
78%
...at least 9 strings more strings with their associated percentages
我需要将数据格式化为:
string9 40%
string1 55%
string12 78%
我知道 FOR 命令可能是我需要的。如果我可以将退格键传递到每一行的开头,那就太好了。
这是让我走到这一步的代码。
@echo off
netsh wlan show networks mode=BSSI > rssifile.txt
findstr /V "Channel Interface There Network Authentication Encryption BSSID Radio Channel rates" rssifile.txt >rssifil1.txt
if exist closer.txt del closer.txt /Q
if exist closer01.txt del closer01.txt /Q
if exist clos0001.txt del clos0001.txt /Q
for /F "usebackq tokens= 1,2 delims=:" %%G IN ("rssifil1.txt") DO echo %%H >>closer.txt
more +1 closer.txt > closer01.txt
这是一项正在进行的工作。以下是我正在尝试的一种可能方法:
rem pseudo code for sorting and collecting RSSI %
set nayme="nayme0"
set /A Cnt=1
If Cnt < 13
for /F "tokens" %%a in (%InFile%) do (
echo nayme %%a >> clos0001.txt
if nayme="nayme0"
nayme=nayme1
goto far
if nayme="nayme1"
nayme=nayme2
goto far
if nayme="nayme1"
nayme=nayme2
goto far
if nayme="nayme1"
nayme=nayme2
goto far
:far
这种方法,上面的伪编码涉及按顺序放置我正在监视的 12 个 RSSI 名称。
文件看起来像这样:
nayme0 77%
nayme1 84%
nayme2 88% ...
最终结果将是一个单行文件,该文件将附加到另一个文件。
按顺序收集 12 个百分比将消除列出 nayme / SSID。 文本文件中的行将如下所示:
3:14 PM 57% 67% 97% 36% 47% 88% 95% 22% 85% 77% 33% 79%
这是我对你最初问题的建议。
@echo off
setlocal enabledelayedexpansion
set line=
for /f "tokens=1,2 delims=:" %%i in ('netsh wlan show networks mode^=BSSID ^|findstr "^SSID Signal"') do (
echo %%i|find "SSID" >nul && (echo(!line! & set "line=%%j") || (set "line=!line!%%j" )
)
echo %line%
明天休息-这里已经很晚了...
问题:你看的是已知列表还是应该是动态的?如果与其中之一有一个星期的连接并且您不时松开它,您会怎么做?