标题: [已结]如何定义“>nul 1>nul 2>nul”字符串常量?
[打印本页]
作者: StartFromBAT
时间: 2008-11-15 01:34
标题: [已结]如何定义“>nul 1>nul 2>nul”字符串常量?
写批处理时>nul 1>nul 2>nul用的比较频繁,所以想设置一个名字短一点常量等于它,到时调用就可以了。
例如: set 常量n等于 >nul 1>nul 2>nul,想输出时只要写入%n%就可以了。
但是,当我写像这样子:
set nn= >nul 1>nul 2>nul
echo %nn%
结果是显示什么都没有。
而这样写,在前面多加个引号
set nn= ">nul 1>nul 2>nul
echo %nn%
就显示 ">nul 1>nul 2>nul
请问:如何设置使得echo %nn%时显示的是>nul 1>nul 2>nul
还有就是请问:
set nn=^ set nn=^^ 有什么特别? echo %nn% 为什么是那样的结果?
请达人指教!多谢!
[
Last edited by HAT on 2008-11-16 at 12:39 ]
作者: everest79
时间: 2008-11-15 05:34
set "nn=^>nul 2>nul"
>null=1>null
作者: radem
时间: 2008-11-15 09:59
@echo off
set "nn= ^>nul 1^>nul 2^>nul"
echo %nn%
pause
作者: radem
时间: 2008-11-15 10:02
建议楼主多看置顶贴
作者: StartFromBAT
时间: 2008-11-15 10:58
多谢两位大哥的热心解答。
囧我试过搜索set、搜索>nul,但是帖子太多了。。。囧
还有就是请教第二个问题, set nn=^ 和set nn=^^
或者我应该另起个标题提问?
作者: dikex
时间: 2008-11-15 13:14
Quote: |
Originally posted by everest79 at 2008-11-15 05:34 AM:
set "nn=^>nul 2>nul"
>null=1>null |
|
这个无法实现楼主想免于繁琐的要求,另外楼主的写法本身也就繁琐了,可以直接写为 >nul 2>nul,或者 >nul 2>&1(句柄1是默认的);
应该直接进行赋值:
set "nn=>nul 2>&1"
用echo %nn% 不能显示?!其实这样才是正确的结果!
如果用上%nn%后echo的返回信息都不能屏蔽,那不就是和楼主原先的想法不同吗;
执行下面的就可以知道了:
dir c: %nn%
dir QQ: %nn%
第一个正常信息和第二个错误信息都没有了;
至于看%nn%值,应该用:
set nn
作者: StartFromBAT
时间: 2008-11-15 18:50
多谢dikex兄的解答,dikex兄很细心哦。果然如dikex兄所言。
everest79兄和radem兄可能只想实现显示 echo %nn%了。呵呵,是我误导了。
所以常量如果是>nul 2>nul ,那么它连自己也屏蔽了,echo显示不出来了。
btw, 为什么set nn=^ 会显示 More? 呢?结果如下:
C:\>set n=^
More?
More?_
C:\>set n
n=
NUMBER_OF_PROCESSORS=2
这一句“
NUMBER_OF_PROCESSORS=2 ” 是什么意思?
作者: dikex
时间: 2008-11-15 19:14
1 论坛搜索 ^ ,范围是批处理室
2 set n 表示列出所有以 n 开头的变量,而NUMBER_OF_PROCESSORS表示处理器个数,双核会被识别为2个
作者: StartFromBAT
时间: 2008-11-15 21:05

再次感谢,以后我提问前会多搜索的。