【问题标题】:StackOverflow reputation using Windows Command Prompt (cmd.exe)使用 Windows 命令提示符 (cmd.exe) 的 StackOverflow 信誉
【发布时间】:2014-03-10 20:18:59
【问题描述】:

如何使用命令提示符脚本查看我的声誉?

(回复StackOverflow reputation using PowerShell,因为我很无聊。)

【问题讨论】:

    标签: windows cmd


    【解决方案1】:
    @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
    

    【讨论】:

    • 这是一个关于powershell如何改进windows命令行脚本的很好的例子
    【解决方案2】:

    在命令提示符窗口中输入:

    start iexplore http://stackoverflow.com/users/flair/{your UID here}.html
    

    【讨论】:

    • 除非 iexplore 默认不在路径中。
    • 它在我可以访问的每个 Windows 框中。 XP, Vista, 2003, 7
    • 如果 iexplore 被忽略,那么它将在默认浏览器中打开,例如Opera 或 Firefox。
    【解决方案3】:

    可通过 (JSON) 为用户提供更详细的数据:

    http://stackoverflow.com/users/rep/50475/2009-01-01/2009-01-31
    

    您可以通过解析该字符串获得一些有趣的数据。 Jon Skeet 将其用于他的rep tracker

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-04
      相关资源
      最近更新 更多