web-dev-qa-db-fra.com

Que signifie / p dans set / p?

Qu'est-ce que /p représente pour set /p=? Je le sais / active un commutateur, et je suis à peu près sûr que je sais que /a est pour arithmetic. J'ai entendu de nombreuses rumeurs, certaines disant /p est pour Prompt, d’autres affirmant que cela signifie print. La seule raison pour laquelle je doute un peu que ce soit Prompt est parce que dans de nombreux cas, il ne demande pas d’Invite, mais imprime à l’écran, tel que

<nul set /p=This will not generate a new line

Mais ce que je veux savoir, c'est: Savons-nous vraiment ce que cela signifie?

Points bonus pour tous ceux qui savent ce que tous les commutateurs pour ping représentent, tels que -n, -w, -a, -s, et ce que le commutateur /L dans for est censé représenter. (L = nombre ?)

Encore plus de points bonus pour tous ceux qui peuvent nommer n'importe quel autre apparemment commutateur stupide dans un fichier batch

S'il vous plaît, comprenez que je sais déjà ce que signifient tous ces commutateurs et préfixes et ainsi de suite , je ne demande ni leur sens ni leur finalité. Merci d'avance.

21
blaizor

Pour référence ultérieure, vous pouvez obtenir de l'aide pour n'importe quelle commande en utilisant le /? switch, ce qui devrait expliquer ce que font les commutateurs.

Selon le set /? écran, le format de set /p est SET /P variable=[promptString] qui indiquerait que le p dans /p est "invite". Cela imprime simplement dans votre exemple parce que <nul passe un caractère nul qui termine immédiatement l'invite de sorte qu'il agit comme si c'était l'impression. Il est toujours techniquement incité à entrer, il est juste de le recevoir immédiatement.

/L dans for /L génère un L ist.

De 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.
14
SomethingDark

Le commutateur /P Vous permet de définir la valeur d'une variable sur une ligne d'entrée saisie par l'utilisateur. Affiche l'invite spécifiée avant de lire la ligne d'entrée. Le promptString peut être vide.

Je l'ai utilisé de deux manières ... d'abord:

SET /P variable=

Lorsque le fichier de commandes atteint ce point (s'il est laissé vide), il s'arrête et attend la saisie de l'utilisateur. L'entrée devient alors variable.

Et deuxieme:

SET /P variable=<%temp%\filename.txt

Définira variable sur le contenu (la première ligne) du fichier txt. Cette méthode ne fonctionnera que si le /P Est inclus. Les deux testés sur Windows 8.1 Pro, mais c'est la même chose sur 7 et 10.

25
user1595923