【问题标题】:edit a txt file with DOS Windows command line FOR使用 DOS Windows 命令行 FOR 编辑 txt 文件
【发布时间】:2015-01-10 19:48:39
【问题描述】:

在使用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 个百分比将消除列出名称/SSID。 文本文件中的行如下所示:

3:14 PM  57% 67% 97% 36% 47% 88% 95% 22% 85% 77% 33% 79%

【问题讨论】:

  • 发布您用于获取此数据文件的代码。可能有一种方法可以调整它以提供您想要的而不是后处理。

标签: windows file batch-file for-loop command


【解决方案1】:

这是我对您最初问题的建议。

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

明天休息——现在已经很晚了……

问题:您观看已知列表还是应该是动态的?如果与其中一个人有一周的联系,而您时不时地失去联系,您会怎么做?

【讨论】:

  • 甜蜜!我在很多地方设立了办事处。我使用几种方法来检查最佳测量值。这使用 12 个以前废弃的 DSL 调制解调器进行广播。我感兴趣的有 3 个通道:1、6 和 11。我有 4 组三个调制解调器使用这三个通道。我在办公室的 4 个角落中的每一个角落都放置了一组,用来放置一个 arduino,我想在其中找到 WiFi 接入点以获取读数。 arduino 在失败之前最多只能收集 ​​600 个读数。我现在可以整晚运行它。就快结束了!感谢您提供非常干净的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-16
  • 2013-03-24
  • 1970-01-01
  • 1970-01-01
  • 2015-06-20
相关资源
最近更新 更多