Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What does /p mean in set /p?

What does /p stand for in set /p=? I know that / enables a switch, and I'm fairly sure that I know /a is for arithmetic. I've heard numerous rumours, some saying /p is for prompt, others stating it stands for print. The only reason I slightly doubt it is prompt is because in many cases it does not ask for a prompt, yet prints on the screen, such as

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

But what I want to know is: Do we really know what it stands for?

like image 745
blaizor Avatar asked Jan 05 '15 05:01

blaizor


People also ask

What does the set P mean?

first: SET /P variable= When batch file reaches this point (when left blank) it will halt and wait for user input. Input then becomes variable.

What is P in command?

The P (process) command submits the command constructed in the primary output buffer to the TCL command processor.

What is set a in batch?

Arithmetic expressions (SET /a) The expression to be evaluated can include the following operators: For the Modulus operator use (%) on the command line, or in a batch script it must be doubled up to (%%) as below. This is to distinguish it from a FOR parameter.

What is in a batch file?

A batch file is a script file that stores commands to be executed in a serial order. It helps automate routine tasks without requiring user input or intervention. Some common applications of batch files include loading programs, running multiple processes or performing repetitive actions in a sequence in the system.


2 Answers

The /P switch allows you to set the value of a variable to a line of input entered by the user. Displays the specified promptString before reading the line of input. The promptString can be empty.

Two ways I've used it... first:

SET /P variable= 

When batch file reaches this point (when left blank) it will halt and wait for user input. Input then becomes variable.

And second:

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

Will set variable to contents (the first line) of the txt file. This method won't work unless the /P is included. Both tested on Windows 8.1 Pro, but it's the same on 7 and 10.

like image 166
user1595923 Avatar answered Sep 30 '22 12:09

user1595923


For future reference, you can get help for any command by using the /? switch, which should explain what switches do what.

According to the set /? screen, the format for set /p is SET /P variable=[promptString] which would indicate that the p in /p is "prompt." It just prints in your example because <nul passes in a nul character which immediately ends the prompt so it just acts like it's printing. It's still technically prompting for input, it's just immediately receiving it.

/L in for /L generates a List of numbers.

From 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. 
like image 20
SomethingDark Avatar answered Sep 30 '22 11:09

SomethingDark