【发布时间】:2014-07-08 06:48:02
【问题描述】:
我有一个非常糟糕的脚本(我知道有很多更简单的方法可以实现这一点,但是哦。)计算你的 IP 地址。它使用了一种非常复杂且缓慢的迂回方法,但我被卡住了。我基本上有这个:我桌面上的一个巨大的 txt 文件,其中嵌入了一个 IP 地址。
代码如下:
@if (@CodeSection == @Batch) @then
@echo off
rem Use %SendKeys% to send keys to the keyboard buffer
set SendKeys=CScript //nologo //E:JScript "%~F0"
cd\
cd users\%username%\desktop\
if exist "what is my ip address - Google Search.htm" del "what is my ip address - Google Search.htm"
if exist ip.txt del ip.txt
:: this link is just a shortened url to a google search of "what is my ip address"
start http://goo.gl/L66owU
timeout 10 >nul /nobreak
%sendkeys% "(^s)"
timeout 1 >nul /nobreak
%sendkeys% "{enter}"
timeout 5 >nul /nobreak
rename "what is my ip address - Google Search.htm" "ip.txt"
findstr /c "Your public IP address is <em>.............</em>" ip.txt
pause
goto :EOF
@end
// JScript section
var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.SendKeys(WScript.Arguments(0));
我看着它就畏缩了。
无论如何,我的错误在这一行 findstr /c "Your public IP address is <em>.............</em>" ip.txt 我需要过滤掉所有内容,并获取设置为通配符的任何值(.......s)
如果你尝试这个脚本,你基本上会让你的默认浏览器打开一个谷歌页面,然后它会将该页面保存为一个 HTM 文件(如果你至少使用 chrome),然后我重命名@987654324 @到.txt。我只需要一个更好的(和有效的)方法来最终显示 IP 地址。
我知道这是可能的,我只是不太擅长 find 或 findstr 命令。
【问题讨论】:
标签: batch-file ip-address findstr