web-dev-qa-db-ja.com

ホスト名を.batファイルの変数に保存する方法は?

これを変換したい/bin/sh広く互換性のあるWindowsバッチスクリプトへの構文:

Host=`hostname`
echo ${Host}

Windows Vista、Windows XP、およびWindows 2000マシンで動作するようにこれを行う方法は?

明確にするために、プログラムに進み、変数Hostに保存されているホスト名を使用したいと思います。言い換えれば、プログラムの大きな目標は、単にホスト名をエコーすることではありません。

48

通常、一時ファイルを作成する必要がないため、FORコマンドを使用してコマンド出力を変数に読み込みます。例えば:

FOR /F "usebackq" %i IN (`hostname`) DO SET MYVAR=%i

上記のステートメントはコマンドラインでは機能しますが、バッチファイルでは機能しないことに注意してください。バッチファイルで使用するには、%FORステートメントに2回配置して:

FOR /F "usebackq" %%i IN (`hostname`) DO SET MYVAR=%%i
ECHO %MYVAR%

FORでできることは他にもたくさんあります。詳細を入力するには、HELP FOR atコマンドプロンプト。

54
Dave Webb

うーん-このようなもの?

set Host=%COMPUTERNAME%
echo %Host%

[〜#〜] edit [〜#〜]:ジッターの答えを拡張し、 thisへの答えにテクニックを使用するquestion コマンドラインアプリの実行結果で環境変数を設定するには:

@echo off
hostname.exe > __t.tmp
set /p Host=<__t.tmp
del __t.tmp
echo %Host%

どちらの場合でも、「ホスト」は環境変数として作成されます。

55
sean e

環境変数COMPUTERNAMEを使用しています:

copy "C:\Program Files\Windows Resource Kits\Tools\" %SYSTEMROOT%\system32
srvcheck \\%COMPUTERNAME% > c:\shares.txt
echo %COMPUTERNAME%
12
brakertech

なぜそうではないのですか?:

set Host=%COMPUTERNAME%
echo %Host%
6
maniattico

次の行で.batファイルを作成するだけです

hostname

初期化。それでおしまい。 Windowsはhostnameコマンドもサポートしています。

0
jitter
 set Host=%COMPUTERNAME%
 echo %Host%

これで十分。大きなコーディングの余分なループは必要ありません。

0
Ariful Huq