【发布时间】:2014-03-10 20:18:59
【问题描述】:
如何使用命令提示符脚本查看我的声誉?
(回复StackOverflow reputation using PowerShell,因为我很无聊。)
【问题讨论】:
如何使用命令提示符脚本查看我的声誉?
(回复StackOverflow reputation using PowerShell,因为我很无聊。)
【问题讨论】:
@echo off & setlocal
:: 支持 curl、wget、plink 和 nc
在此处设置 SoUID=您的 UID
:: 示例:设置 SoUID=49849
设置 SoHost=stackoverflow.com
设置 FlairPath=/users/flair/%SoUID%.json
设置 FlairURL=http://%SoHost%%FlairPath%
设置 TempTag=%SoHost%-%SoUID%-%random%
设置 TempFile=%TEMP%\%TempTag%.json
设置脚本=%TEMP%\%TempTag%.script
设置 RawOut=%TEMP%\%TempTag%.out
呼叫:检查卷曲
如果不是 "%App%"=="" "%App%" -o "%TempFile%" -s "%FlairURL%" & goto :Next
调用:检查 wget
如果不是 "%App%"=="" "%App%" -O "%TempFile%" -q "%FlairURL%" & goto :Next
呼叫:检查 plink
如果不是 "%App%"=="" 调用 :MakeScript & "%App%" -raw %SoHost% -P 80 -batch "%RawOut%" & goto :NextHdr
呼叫:检查 nc
如果不是 "%App%"=="" 调用 :MakeScript & "%App%" %SoHost% 80 "%RawOut%" & goto :NextHdr
>&2 echo curl、wget、plink 或 netcat 未找到。从 PuTTY 网站下载 plink。
设置 App=%TEMP%\plink.exe
呼叫:镜像 ftp.chiark.greenend.org.uk /users/sgtatham/putty-latest/x86/plink.exe
如果不存在“%App%”调用:Mirror ftp.samurai.com /pub/putty/putty-latest/x86/plink.exe
如果不存在“%App%”调用:Mirror ftp.totem.fix.no /pub/mirrors/putty/putty-latest/x86/plink.exe
如果不存在“%App%”调用:Mirror ftp.ds5.agh.edu.pl /pub/putty/putty-latest/x86/plink.exe
如果不存在 "%App%" 转到 :NoApp
调用:MakeScript & "%App%" -raw %SoHost% -P 80 -batch "%RawOut%" & del "%App%" & goto :NextHdr
:镜子
如果存在 "%App%" del "%App%"
> "%Script%" echo=lcd "%TEMP%"
>>"%Script%" echo=二进制
>>"%Script%" echo=get %~2
>>"%Script%" echo=再见
ftp -s:"%Script%" -A -v -i %~1 > nul 2> nul
转到:EOF
:NextHDR
for /f "usebackq tokens=1,* delims=:" %%a in ("%RawOut%") 做 (
if [%%a]==[{"id"] set Flair=%%a:%%b & del "%Script%" "%RawOut%" & goto :Next2
)
:NoApp
>&2 回声放弃。 & 转到:EOF
:下一个
如果不存在 "%TempFile%" echo 下载数据时出错。 & 转到:EOF
set /p Flair=&2 echo 出了点问题。
) 别的 (
如果 "%SoName%"=="" (
echo 您的声誉是 %SoReputation%。
) 别的 (
echo %SoName% 的信誉为 %SoReputation%。
)
)
转到:EOF
:解析
如果 "%~1"=="" 转到 :EOF
设置行=%~1
转移
if /i "%Line:~0,11%"=="reputation:" (
设置 SoReputation=%Line:~11%
转到:解析
)
如果 /i "%Line:~0,12%"=="displayName:" (
设置 SoName=%Line:~12%
转到:解析
)
转到:解析
:查看
设置应用=
for %%e in (%PATHEXT%) do for %%i in (%1%%e) do if NOT "%%~$PATH:i"=="" set App=%%~$PATH:i
转到:EOF
:MakeScript
> "%Script%" echo=GET %FlairPath% HTTP/1.1
>>"%Script%" echo=主机: %SoHost%
>>"%Script%" echo=连接:关闭
>>"%Script%" 回声=
转到:EOF
【讨论】:
在命令提示符窗口中输入:
start iexplore http://stackoverflow.com/users/flair/{your UID here}.html
【讨论】:
可通过 (JSON) 为用户提供更详细的数据:
http://stackoverflow.com/users/rep/50475/2009-01-01/2009-01-31
您可以通过解析该字符串获得一些有趣的数据。 Jon Skeet 将其用于他的rep tracker。
【讨论】: