2015-01-05 13 views
10

Sono un appassionato di file batch, e non è spesso che vado su internet a chiedere. Ma sono pazzamente curioso: cosa significa /p in set /p=? So che / attiva uno switch e sono abbastanza sicuro di sapere cheè per arithmetic. Ho sentito numerose voci, alcuni che dicono che /p è per prompt, altri che affermano che sta per print. L'unica ragione per cui un po 'dubbio è prompt è perché in molti casi non richiede un prompt, eppure digitali sullo schermo, come ad esempioCosa significa/p in set/p?

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

Ma quello che voglio sapere è: sappiamo veramente cosa rappresenta?

punti bonus per chi sa quali tutti gli interruttori per ping rappresentano, come -n, -w, -a, -s, e ciò l'interruttore /L in for è destinato a rappresentare. (L = numero?)

Anche più punti bonus per tutti coloro che possono chiamare qualsiasi altro apparentemente stupidi interruttori in file batch

preghiamo di comprendere che so già cosa tutti questi interruttori e prefissi e whatnot significa, non sto chiedendo il loro significato né scopo. Grazie in anticipo.

+4

* Punti bonus? * Come? Bounty? – anishsane

+0

No, sto solo dicendo che sarebbe meglio. Sai, starei silenziosamente a gridare "Sì, bel lavoro!" – blaizor

+3

Batch enthusiast ... sexy – Monacraft

risposta

8

Per riferimento futuro, è possibile ottenere assistenza per qualsiasi comando utilizzando lo switch /?, che dovrebbe spiegare quali switch fanno cosa.

Secondo schermo set /?, il formato per set /p è SET /P variable=[promptString] che indicherebbe che il p in /p è programmazione "" Viene stampato nel tuo esempio perché <nul passa in un carattere nul che termina immediatamente il prompt in modo che sia solo ad agire come come se stesse stampando. Sta ancora chiedendo tecnicamente input, lo sta ricevendo immediatamente.

/L in for /L genera un numero di L.

Da 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. 
+0

Sapevo già cosa facevano e sapevo già del [comando] /? sintassi, ma non ho mai pensato di usarlo perché, come già detto, sapevo già cosa facevano. Ma ora che lo vedi, il modo in cui è spiegato nel /? i menu sono molto più concreti sul perché l'abbreviazione è quello che è - ho sempre usato cose come ss64.com e simili. Accettato, buona risposta. – blaizor

15

L'interruttore /P permette di impostare il valore di una variabile ad una linea di ingresso immesso dall'utente. Visualizza il promptString specificato prima di leggere la riga di input. Il promptString può essere vuoto.

due modi ho usato ... primi:

SET /P variable= 

Quando file batch raggiunge questo punto (se lasciato vuoto) si fermerà e attendere l'input dell'utente. L'input diventa quindi variabile.

E in secondo luogo:

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

imposterà variabile per i contenuti (la prima linea) del file txt. Questo metodo non funzionerà se non è incluso lo /P. Entrambi testati su Windows 8.1 Pro, ma è lo stesso su 7 e 10.