1

これはおそらく簡単なことですが、答えを見つけることができず、最近 (明らかに) あまりバッチ プログラミングを行っていません。私が望むのは、バッチ ファイルでホスト名をその IP に変換することだけです。

これが私のスクリプトです:

set /p ip="IP: " %=%
start "" "C:\Program Files (x86)\CtrlDistance SCCM\cmRcViewer.exe" %ip% \\sccm 
exit

この .bat ファイルは、ユーザーが IP を入力した後に SCCM を開始するだけです。ただし、コマンド ラインの SCCM はホスト名をパラメーターとして受け入れないため、アプリケーションに送信する前に%ip%を自動的に変換したいと考えています。

ありがとうございました。

4

2 に答える 2

2

localhost の例 (ipv6 出力については不明):

@echo off
setlocal
    set "ipadr="
    ping -n 1 localhost 2>nul 1>&2 && (
        for /f "tokens=2 delims=[]" %%h in ('ping -n 1 localhost') do (
            set "ipadr=%%h"
            goto :break_loop
        )
    )
    :break_loop
    if defined ipadr ( 
        echo %ipadr% 
        rem you can start SCCM here
    ) else (
        echo host does not exist
    )
endlocal
于 2014-04-15T20:30:09.187 に答える
1

最終的なコード:

@echo off
setlocal

if "%1"=="" (
    set /p host="IP: " %=%
) else (
    set host=%1
)

set "ip="
ping -n 1 %host% 2>nul 1>&2 && (
    for /f "tokens=2 delims=[]" %%h in ('ping -n 1 %host%') do (
        set "ip=%%h"
        goto :break_loop
    )
:break_loop
    if not defined ip ( set ip=%host% )
)

if defined ip ( 
    start "" "C:\Program Files (x86)\CtrlDistance SCCM\cmRcViewer.exe" %ip% \\sccm
) else (
    echo no_ping
    pause
)

endlocal
exit
于 2014-04-16T15:00:09.120 に答える