web-dev-qa-db-ja.com

バッチスクリプトでPC名を見つける方法は?

バッチプログラムを実行しているPCの名前を見つけるにはどうすればよいですか?

バッチプログラムを実行しているPCの名前を見つけて、変数として保存できるようにしたいと考えています。何か助けは?

18
Rory Durrant

Vikas Guptaが回答したように、事前定義された%COMPUTERNAME%コンピュータ名がすでに含まれている環境変数。実用的な観点からは、これで十分です。

ただし、バッチファイルによって値が上書きされる可能性があるため、値が正しいことは保証されません。

WMICを使用して、コンピューター名を直接読み取ることができます。

for /f "skip=1 delims=" %%A in (
  'wmic computersystem get name'
) do for /f "delims=" %%B in ("%%A") do set "compName=%%A"

追加のFORループは、WMICのUnicode出力と相互作用するFOR/Fのアーティファクトである不要な復帰文字を排除します。ループが1つしかない場合、各行の終わりにキャリッジリターンがあり、問題が発生する可能性があります。

10
dbenham

Windowsでは、通常、環境変数はすでに設定されており、使用できます-

echo %ComputerName%
26
Vikas Gupta

PowerShellでは、次も使用できます。

[Environment]::MachineName

ここでは、値は.Netから取得されるため、$Env:ComputerNameを使用する問題を回避できます。

0
Stef