Waar staat /P
voor in set /p=
? Ik weet dat /
een switch mogelijk maakt, en ik ben er vrij zeker van dat ik weet dat /a
voor arithmetic
is. Ik heb talloze geruchten gehoord, sommigen zeggen dat /P
voor prompt
is, anderen beweren dat het staat voor print
. De enige reden waarom ik enigszins twijfel of het prompt
is, is omdat het in veel gevallen niet om een prompt vraagt, maar toch op het scherm wordt afgedrukt, zoals
<nul set /p=This will not generate a new line
Maar wat ik wil weten is: Weten we echt waar het voor staat?
Bonuspuntenvoor iedereen die weet waar alle schakelaars voor ping
voor staan, zoals -n
, -w
, -a
, -s
, en waar de schakelaar /L
in for
voor staat voor. (L = nummer?)
Nog meer bonuspuntenvoor iedereen die andere schijnbaardomme schakelaars in batchbestand kan noemen
Begrijp alsjeblieft dat ik al weet wat al deze schakelaars en voorvoegsels en wat niet betekenen, ik vraag niet naar hun betekenis of doel. Bij voorbaat dank.
Antwoord 1, autoriteit 100%
Voor toekomstig gebruik kun je hulp krijgen voor elke opdracht door de schakeloptie /?
te gebruiken, die moet uitleggen welke schakelaars wat doen.
Volgens het set /?
scherm is het formaat voor set /p
SET /P variable=[promptString]
wat zou aangeven dat de p in /P
“prompt” is. Het wordt gewoon afgedrukt in uw voorbeeld omdat <nul
een nul-teken doorgeeft dat de prompt onmiddellijk beëindigt, zodat het gewoon doetalsof het afdrukt. Technisch gezien vraagt het nog steeds om invoer, het ontvangt het alleen onmiddellijk.
/L
in for /L
genereert een List van getallen.
Van ping /?
:
Usage: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]
[-r count] [-s count] [[-j host-list] | [-k host-list]]
[-w timeout] [-R] [-S srcaddr] [-4] [-6] target_name
Options:
-t Ping the specified host until stopped.
To see statistics and continue - type Control-Break;
To stop - type Control-C.
-a Resolve addresses to hostnames.
-n count Number of echo requests to send.
-l size Send buffer size.
-f Set Don't Fragment flag in packet (IPv4-only).
-i TTL Time To Live.
-v TOS Type Of Service (IPv4-only. This setting has been deprecated
and has no effect on the type of service field in the IP Header).
-r count Record route for count hops (IPv4-only).
-s count Timestamp for count hops (IPv4-only).
-j host-list Loose source route along host-list (IPv4-only).
-k host-list Strict source route along host-list (IPv4-only).
-w timeout Timeout in milliseconds to wait for each reply.
-R Use routing header to test reverse route also (IPv6-only).
-S srcaddr Source address to use.
-4 Force using IPv4.
-6 Force using IPv6.
Antwoord 2, autoriteit 91%
Met de schakelaar /P
kunt u de waarde van een variabele instellen op een invoerregel die door de gebruiker is ingevoerd. Geeft de opgegeven promptString weer voordat de invoerregel wordt gelezen. De promptString mag leeg zijn.
Twee manieren waarop ik het heb gebruikt… eerst:
SET /P variable=
Wanneer het batchbestand dit punt bereikt (indien leeg gelaten), zal het stoppen en wachten op invoer van de gebruiker. Invoer wordt dan variabel.
En ten tweede:
SET /P variable=<%temp%\filename.txt
Zal variabele instellen op inhoud (de eerste regel) van het txt-bestand. Deze methode werkt niet tenzij de /P
is opgenomen. Beide getest op Windows 8.1 Pro, maar hetzelfde op 7 en 10.