[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] [已解决]请问批处理set /p=中的变量是哪个?

set /p=123
那输入的123赋给了哪个变量?

[ 本帖最后由 abcdshenji 于 2011-3-16 20:56 编辑 ]
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

  1. @echo off
  2. set /p w=123
  3. echo %w%
  4. pause
复制代码
测试环境:WINDOWS 8 64Bit
如系统环境不同,请自行修改 :)

TOP

set /p=123纯粹是显示,不会把输入赋予任何变量,楼主"set"一下就会发现所有变量原封不动
这一般是用来不换行显示的:
  1. @echo off
  2. set /p=123<nul
  3. echo 456
  4. pause
复制代码

TOP

SET /P 可以清除回车符或换行符
枫中残雪:风停了,我的心却在动,让我心中的寒意走向远方

TOP

回复 3楼 的帖子

可是你看这个:
  1. @echo off&setlocal EnableDelayedExpansion
  2. set "th=1"&set /p=请输入一个数:
  3. for /l %%i in (1,1,!p!) do (
  4.   set "str=!str!1"
  5. )
  6. rem 也可以加上先判断是否偶数。
  7. for /l %%i in (3,2,!p!) do (
  8.     set "th=!th!11"
  9.     for /f %%j in ("!th!") do (
  10.         if "!str:%%j=!"=="" set "flag=非素"&goto :end
  11.     )
  12. )
  13. :end
  14. if defined flag (
  15.   echo 非素数
  16. ) else (
  17.   echo 素数
  18. )
  19. pause>nul
复制代码
如果纯粹是显示的话。。这句“set /p=请输入一个数:”的作用是什么?它怎么引用输入的变量的值?还有下面的!p!是什么?变量p都还没定义呢,它是怎么引用的?难道说变量是p?如果是的话
  1. set /p=请输入一个数:
  2. echo\&echo %p%
  3. pause>nul
复制代码
结果是ECHO处于关闭状态

搞不懂啊。。。希望大哥指点一下下啊

TOP

set /p=hello
我也一直以为是显示,不过看楼上的意思——!p!是哪里来的呢

TOP

回复 5楼 的帖子

你怎么知道这段P是正确的呢?
枫中残雪:风停了,我的心却在动,让我心中的寒意走向远方

TOP

回复 5楼 的帖子

不知道楼主从哪复制的源代码,但显然语法存在错误:
set "th=1"&set /p=请输入一个数:
应该为
set "th=1"&set /p p=请输入一个数:
1

评分人数

寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

回复 7楼 的帖子

唉。。真的是错的。。

TOP

回复 8楼 的帖子

恩。。明白。。验证过了。。就算是改成“set "th=1"&set /p p=请输入一个数:”。。这段P也还是错的。。。。

TOP

回复 7楼 的帖子

搞了半天,原来set /p=hello 还是表示显示而已

TOP

返回列表