标题: [其他] [已解决]请问批处理set /p=中的变量是哪个? [打印本页]
作者: abcdshenji 时间: 2011-3-16 16:15 标题: [已解决]请问批处理set /p=中的变量是哪个?
set /p=123
那输入的123赋给了哪个变量?
[ 本帖最后由 abcdshenji 于 2011-3-16 20:56 编辑 ]
作者: andyrave 时间: 2011-3-16 16:31
- @echo off
- set /p w=123
- echo %w%
- pause
复制代码
作者: CrLf 时间: 2011-3-16 17:05
set /p=123纯粹是显示,不会把输入赋予任何变量,楼主"set"一下就会发现所有变量原封不动
这一般是用来不换行显示的:- @echo off
- set /p=123<nul
- echo 456
- pause
复制代码
作者: wc726842270 时间: 2011-3-16 17:18
SET /P 可以清除回车符或换行符
作者: abcdshenji 时间: 2011-3-16 17:29 标题: 回复 3楼 的帖子
可是你看这个:- @echo off&setlocal EnableDelayedExpansion
- set "th=1"&set /p=请输入一个数:
- for /l %%i in (1,1,!p!) do (
- set "str=!str!1"
- )
- rem 也可以加上先判断是否偶数。
- for /l %%i in (3,2,!p!) do (
- set "th=!th!11"
- for /f %%j in ("!th!") do (
- if "!str:%%j=!"=="" set "flag=非素"&goto :end
- )
- )
- :end
- if defined flag (
- echo 非素数
- ) else (
- echo 素数
- )
- pause>nul
复制代码
如果纯粹是显示的话。。这句“set /p=请输入一个数:”的作用是什么?它怎么引用输入的变量的值?还有下面的!p!是什么?变量p都还没定义呢,它是怎么引用的?难道说变量是p?如果是的话- set /p=请输入一个数:
- echo\&echo %p%
- pause>nul
复制代码
结果是ECHO处于关闭状态
搞不懂啊。。。希望大哥指点一下下啊
作者: Hello123World 时间: 2011-3-16 17:35
set /p=hello
我也一直以为是显示,不过看楼上的意思——!p!是哪里来的呢
作者: wc726842270 时间: 2011-3-16 17:36 标题: 回复 5楼 的帖子
你怎么知道这段P是正确的呢?
作者: hanyeguxing 时间: 2011-3-16 18:30 标题: 回复 5楼 的帖子
不知道楼主从哪复制的源代码,但显然语法存在错误:
set "th=1"&set /p=请输入一个数:
应该为
set "th=1"&set /p p=请输入一个数:
作者: abcdshenji 时间: 2011-3-16 18:37 标题: 回复 7楼 的帖子
唉。。真的是错的。。
作者: abcdshenji 时间: 2011-3-16 18:40 标题: 回复 8楼 的帖子
恩。。明白。。验证过了。。就算是改成“set "th=1"&set /p p=请输入一个数:”。。这段P也还是错的。。。。
作者: Hello123World 时间: 2011-3-16 23:59 标题: 回复 7楼 的帖子
搞了半天,原来set /p=hello 还是表示显示而已
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |