批处理文件 - 使用当前SSID命名IP扫描结果csv

时间:2017-08-14 16:42:57

标签: windows csv batch-file cmd ssid

我找到了一个可以在批处理文件中运行的IP扫描程序,它将扫描结果保存到CSV文件中。我需要帮助命名该文件。我的目标是将SSID(当前连接到),日期和时间都放在文件名的所有部分。连字符/破折号很好,但我不喜欢文件名中的空格。

这是IP扫描程序 - https://www.nirsoft.net/utils/wireless_network_watcher.html

以下命令适用于在文件名中插入日期(仅日期),并且每次都将结果保存到同一文件中,覆盖以前的扫描结果。

WNetWatcher.exe / scomma“scan-results-%date:〜-10,2 %% date:〜-7,2 %% date:〜-4,4%.csv”

是否可以添加标签以将时间和SSID插入文件名?

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

如何为批处理文件制作文件名的基本框架 - 您需要做一些魔术以确保良好的文件名结果。我建议调查SET命令的文本替换功能。

@echo off
set WNW_CURDAT=%DATE%
WNetWatcher.exe /scomma "scan-results-%WNW_CURDAT%.csv"

祝你好运,如果你遇到困难就大喊大叫。

答案 1 :(得分:0)

可以从netsh.exe收集SSID,并在PowerShell脚本中与Get-Date中的当前日期连接。

C:>Get-Content .\Get-IPScanLogFilename.ps1
& netsh.exe wlan show interfaces |
    Select-String "\sSSID\s*: (.+)" |
    % { "$($_.Matches.Groups[1].Value)-$(Get-Date -Format FileDateTime).csv" }

然后,cmd脚本可以使用该脚本获取唯一的文件名。

C:>Get-Content .\Get-IPScanLog.bat
@echo off
FOR /F "usebackq tokens=*" %%f IN (`powershell -NoProfile -File Get-IPScanLogFilename.ps1`) DO (SET "LOG_FILENAME=%%~f")
"C:\Program Files (x86)\NirSoft\Wireless Network Watcher\WNetWatcher.exe" /scomma "%LOG_FILENAME%"