Windows 7没有生成txt报告

时间:2014-07-12 22:23:03

标签: windows batch-file windows-8 windows-7 batch-processing

我想用dns历史记录生成一个txt文件。虽然批处理脚本在Windows 8上执行得很好,但是当我在Windows 7上运行它时,它只是创建一个空白的txt文件。有谁知道为什么会这样?

这是批处理脚本

@echo off

    setlocal enableextensions

    set "baseName=dnshistory"

    set "count=0"
    for /f "delims=%baseName%." %%a in (
        'dir /b /o-d "%baseName%*.txt" 2^>nul'
    ) do ( set /a "count=%%a+1" & goto saveData )

:saveData
    ipconfig /displaydns | find "Record Name" > "%baseName%%count%.txt"

2 个答案:

答案 0 :(得分:1)

你也是英文版的Windows 7版本吗?

打开CMD窗口并测试命令:

ipconfig /displaydns | find /i "Record Name"

并查看是否显示了某些内容。

如果没有,请尝试以下命令:

ipconfig /displaydns

并查看使用的语言然后使用正确的单词更正您的代码。

IE中的葡萄牙语将是:

ipconfig /displaydns | find /i "Nome do Registro"

答案 1 :(得分:0)

尝试使用此语言以获得与语言无关的解决方案:

:saveData
(for /f "tokens=2 delims=:" %%a in ('ipconfig /displaydns') do (
  echo %%a| find "." |findstr /v /r "[0-9]$"
))>file.txt

(在.(第二个标记)之后,取出每行,过滤那些:的行,过滤掉以数字结尾的所有行

编辑另一种方法(因为上面给出了一些不需要的行):

找到每-----------------行之后的第一行:

@echo off
setlocal enabledelayedexpansion
ipconfig /displaydns |findstr /n "^" >a.txt
for /f "tokens=1 delims=:" %%a in ('findstr /c:"    --------------" a.txt') do (
  set /a line=%%a+1
  for /f "tokens=1,2,* delims=:" %%i in ('findstr /B "!line!:" a.txt') do echo(%%k 
)