これを変換したい/bin/sh
広く互換性のあるWindowsバッチスクリプトへの構文:
Host=`hostname`
echo ${Host}
Windows Vista、Windows XP、およびWindows 2000マシンで動作するようにこれを行う方法は?
明確にするために、プログラムに進み、変数Host
に保存されているホスト名を使用したいと思います。言い換えれば、プログラムの大きな目標は、単にホスト名をエコーすることではありません。
通常、一時ファイルを作成する必要がないため、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コマンドプロンプト。
うーん-このようなもの?
set Host=%COMPUTERNAME%
echo %Host%
[〜#〜] edit [〜#〜]:ジッターの答えを拡張し、 thisへの答えにテクニックを使用するquestion コマンドラインアプリの実行結果で環境変数を設定するには:
@echo off
hostname.exe > __t.tmp
set /p Host=<__t.tmp
del __t.tmp
echo %Host%
どちらの場合でも、「ホスト」は環境変数として作成されます。
環境変数COMPUTERNAME
を使用しています:
copy "C:\Program Files\Windows Resource Kits\Tools\" %SYSTEMROOT%\system32
srvcheck \\%COMPUTERNAME% > c:\shares.txt
echo %COMPUTERNAME%
なぜそうではないのですか?:
set Host=%COMPUTERNAME%
echo %Host%
次の行で.batファイルを作成するだけです
hostname
初期化。それでおしまい。 Windowsはhostnameコマンドもサポートしています。
set Host=%COMPUTERNAME%
echo %Host%
これで十分。大きなコーディングの余分なループは必要ありません。