我想用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"
答案 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
)