FOR /f を使用して結果を検索した後にコマンドを実行します。

FOR /f を使用して結果を検索した後にコマンドを実行します。

結果を見つけるときにコマンドを実行したいのですが、うまくいかないようです。コンピュータ名は HS-33-123-WC、HS-34-456-X のようなものです。結果は私が望むものにはならないようです。正しいスクリプトを作成しなかったようです。if %%a==WC goto dhcp および if %%a==X goto static

REM Display the 4th group of character(s) after -
wmic computersystem get name
for /f "tokens=4 delims=-" %%a in ("%computername%") do (echo %%a && goto next)


:next
if  %%a==WC goto dhcp
if %%a==X goto static


:static
echo Static
pause
goto end

:dhcp
echo This is DHCP
pause
goto end

:終了 @終了 /b

答え1

このようなもの:

@echo off
REM Display the 4th group of character(s) after -

for /f "tokens=4 delims=-" %%a in ("%computername%") do (
                                                         echo "%%a"
                                                         set Var=%%a
                                                        )

if  "%Var%"=="WC" goto dhcp
if "%Var%"=="X" goto static
:end
exit

:static
echo Static
pause
goto end

:dhcp
echo This is DHCP
pause
goto end

答え2

%%aループ内でのみ使用可能です。

ループ内でローカル変数を設定する必要があります。次のコマンドを追加します。

set var=%%a

%var%次のコードで使用します。

関連情報