Versuch, Platzhalter in der IF-Anweisung zu verwenden

1110
grahamriley

Ich versuche, einige Befehle basierend auf dem Rechnernamen auszuführen, habe aber Probleme damit, dass er funktioniert. Ich möchte, dass der Befehl nur ausgeführt wird, wenn der Hostname mit "Machine" beginnt. Unterstützen IF-Anweisungen Platzhalter?

@echo off setlocal enableDelayedExpansion for /f "usebackq skip=1" %%i in (`wmic computersystem get name`) do ( set name=%%i goto :done ) :done if [%name%]==[MachineXXXX] start "" "%ProgramFiles%\Internet Explorer\iexplore.exe" "download url" endlocal 
0

1 Antwort auf die Frage

1
AFH

Sie können keine Platzhalter im gewünschten Sinne verwenden, aber Sie können das gewünschte Ergebnis erzielen, indem Sie einen variablen Teilstring verwenden :

if [%name:0,7%]==[Machine] start ... 

Ein alternativer Ansatz wäre die Verwendung der Abgleichfunktionen in findstr:

echo %name% | findstr /b /c:"Machine" && start ... 

Dies verwendet ein externes Programm, ist also in diesem Fall weniger effizient, kann jedoch eine nützliche Technik für komplexere Übereinstimmungen (z findstr /r. B. Verwendung von ) sein.