java - undslippe jvm parametre i windows cmd

Indlæg af Hanne Mølgaard Plasc

Problem



Hvordan undgår jeg de følgende tegn i Windows CMD?


-Djava.util.logging.SimpleFormatter.format="[\%1$tc] \%4$s: \%5$s \%6$s\%n" 


jeg forsøgte


-Djava.util.logging.SimpleFormatter.format="[\%1$tc] \%4$s: \%5$s \%6$s\%n" 


Dette resulterer dog i en java brugen fejl.

Bedste reference


Fra kommandolinjen skal du ikke have noget problem med den angivne kommando, men inden for batch-filer skal du undslippe (fordoble dem) procentdelen tegn


... .format="[\%\%1$tc] \%\%4$s: \%\%5$s \%\%6$s\%\%n" 


note : Når jeg siger, at du ikke skulle have noget problem i kommandolinjen, mener jeg ikke, at du ikke kan have problemer, det burde du ikke.


Inden for batch-filer erstatter parseren enhver variabel reference. Hvis variablen ikke findes, vil den blot fjerne den. Så som \%1 til \%9 er batchfilargumenter, bliver din kode analyseret som


format="[\%1$tc] \%4$s: \%5$s \%6$s\%n"
         ^^............................ first argument to batch file
                ^^..................... fourth argument to batch file
                      ^^............... fifth argument to batch file
                           ^^.......... sixth argument to batch file
                               ^....... unpaired \% - removed


Hvis du ikke sender argumenter til batchfilen, konverteres den til


format="[$tc] $s: $s $sn"


I kommandolinjen er denne adfærd anderledes, hvis variablen ikke eksisterer, forlader parseren simpelthen variablen som i kommandoen. I dit tilfælde vil parseren forsøge at løse det som


format="[\%1$tc] \%4$s: \%5$s \%6$s\%n"
         ^......^ ...................... variable "1$tc] "
                      ^....^ ........... variable "5$s "
                               ^........ unpaired - leave


Så medmindre du har noget lignende


set "1$tc] =data"


du skal ikke have problemer

Andre referencer 1


Prøv disse


Character to be escaped     Escape Sequence Remark
\%                               \%\%      May not always be required in doublequoted strings, just try
[                               [
]                               ]


Find fuld tegn her [11]