42

/p代表什么set /p=?我知道这会/启用一个开关,而且我很确定我知道/a它是用于arithmetic. 我听过很多谣言,有的说/p是代表prompt,有的说代表代表print。我稍微怀疑的唯一原因prompt是因为在许多情况下它不要求提示,而是在屏幕上打印,例如

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

但我想知道的是:我们真的知道它代表什么吗?

4

2 回答 2

51

/P开关允许您将变量的值设置为用户输入的一行输入。在读取输入行之前显示指定的 promptString。promptString 可以为空。

我使用它的两种方式......首先:

SET /P variable=

当批处理文件到达这一点(留空时)它将停止并等待用户输入。然后输入变为可变的。

第二:

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

将变量设置为 txt 文件的内容(第一行)。除非包含 ,否则此方法将不起作用/P。两者都在 Windows 8.1 Pro 上进行了测试,但在 7 和 10 上是相同的。

于 2016-10-20T19:47:33.753 回答
31

为了将来参考,您可以通过使用开关获得任何命令的帮助/?,这应该解释什么开关做什么。

根据set /?屏幕,格式set /pSET /P variable=[promptString]表示 p in/p是“提示”。它只是在您的示例中打印,因为<nul传入一个 nul 字符,该字符立即结束提示,因此它就像在打印一样。它仍然在技术上提示输入,它只是立即接收它。

/Linfor /L生成L个数字列表。

来自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.
于 2015-01-05T05:27:52.707 回答