windows - Hvordan vælges navnet på miljøvariablen som et argument?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har en batch.bat med et input argument \%1. Jeg vil starte scriptet som: batch.bat PATH. Jeg vil gerne have dette vist PATH-miljøvariablen med echo.


Jeg forsøgte:


@echo \%1




E:>batch.bat PATH
PATH


men jeg vil gerne have indholdet af PATH miljøvariabel.


E:>batch.bat PATH
C:Windows;   

Bedste reference


Du har brug for forsinket ekspansion for at udføre en variabel, der refereres af et cmd line argument.

Dette parti bruger to forskellige metoder til dette,



  • et pseudoopkald med fordoblet procenttegn (som tvinger parseren til at evaluere linjen to gange, på første pass reducerer to \%\% til en i 2. pass den anden vars allerede er udvidet) og

  • bruger ! i stedet det normale enkelt procent tegn med en forudgående kommando setlocal enabledelayedexpansion






:: Q:Test2018510SO\_50280684.cmd
@Echo off&SetLocal EnableDelayedExpansion
Echo(\%1
Echo(!\%1!
Call Echo(\%\%\%1\%\%


Jeg bruger kommandoseparatoren ( i stedet for et mellemrum til at undertrykke en Echo is off besked inkassering af en tom var.


Prøve med kommando


>SO\_50280684.cmd PROCESSOR\_ARCHITECTURE
PROCESSOR\_ARCHITECTURE
AMD64
AMD64