【问题标题】:Batch file - naming IP scan results csv with current SSID批处理文件 - 使用当前 SSID 命名 IP 扫描结果 csv
【发布时间】:2017-08-14 16:42:57
【问题描述】:

我找到了一个可以在批处理文件中运行的 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?

感谢您的帮助。

【问题讨论】:

  • 您有责任搜索和利用代码以您所需的格式检索 SSID、日期和时间。完成此操作后,如果您仍然遇到问题,请通过相应地编辑使用新代码更新您的帖子。

标签: windows csv batch-file cmd ssid


【解决方案1】:

如何制作批处理文件的文件名的基本框架——您需要做一些魔术来确保获得良好的文件名结果。我建议研究 SET 命令的文本替换功能。

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

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

【讨论】:

    【解决方案2】:

    可以从 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%"
    

    【讨论】:

      猜你喜欢
      • 2013-04-13
      • 1970-01-01
      • 2014-05-03
      • 2014-02-26
      • 2014-02-13
      • 2010-12-11
      • 2019-05-25
      • 2015-06-10
      相关资源
      最近更新 更多