标题: [其他] (收集代码越多越好)批处理所有限制 [打印本页]
作者: lzwudi 时间: 2008-10-28 17:07 标题: (收集代码越多越好)批处理所有限制
请各位老师指点:
把您知道的所有限制都发上来吧!
比如:
%RANDOM%变量限制0 和 32767 之间的任意十进制数字 等等
目的:
希望能让我这样的新手掌握批处理基本的限制要求
[ 本帖最后由 lzwudi 于 2008-10-28 17:15 编辑 ]
作者: pusofalse 时间: 2008-10-28 18:50
我觉得random完全不是一个限制,要获取5位数以上的随机数,可以用%random%%random%%random%
CMD所能处理的最大数值 2^31
一个变量所能容纳的最大字符数 8168(?)
等等。。。
若想摆脱限制,最好的方法是自己开放、或者借助第三方工具。
作者: lzwudi 时间: 2008-10-28 21:14
太好了,又增加知识了
不过我想要的是:
CMD所能处理的最大数值 2^31
一个变量所能容纳的最大字符数 8168(?)
等等。。。
还有其它的吗?????
[ 本帖最后由 lzwudi 于 2008-10-28 21:17 编辑 ]
作者: Batcher 时间: 2008-10-28 21:27
for命令中是不能使用双引号作为列分隔符的
作者: jellyhk 时间: 2008-10-29 05:36
除了%random%外还有其他类似的变量么!
作者: zqz0012005 时间: 2008-10-29 06:14
其他类似的什么变量?数字变量?动态变量?
set /?
...
如果命令扩展名被启用,有几个动态环境变量可以被扩展,但
不会出现在 SET 显示的变量列表中。每次变量数值被扩展时,
这些变量数值都会被动态计算。如果用户用这些名称中任何
一个定义变量,那个定义会替代下面描述的动态定义:
%CD% - 扩展到当前目录字符串。
%DATE% - 用跟 DATE 命令同样的格式扩展到当前日期。
%TIME% - 用跟 TIME 命令同样的格式扩展到当前时间。
%RANDOM% - 扩展到 0 和 32767 之间的任意十进制数字。
%ERRORLEVEL% - 扩展到当前 ERRORLEVEL 数值。
%CMDEXTVERSION% - 扩展到当前命令处理器扩展名版本号。
%CMDCMDLINE% - 扩展到调用命令处理器的原始命令行。
作者: wxcute 时间: 2008-10-29 10:18 标题: 字符串替换
- ::不能单独替换 * 星号,但可以把第一个星号及前面的字符串同时替换掉
- @echo off
- set a=iii*jjj*kkk
- set b=%a:**=%
- set c=%a:**=hhh*%
- echo a的值%a%
- echo b的值%b% 把a的首个星号及前面的iii一起替换为空
- echo c的值%c% 把a的第一个星号及前面的iii替换为hhh*
- pause
复制代码
作者: lzwudi 时间: 2008-10-29 11:51
回复:jellyhk zqz0012005
好象我的意思您没有理解,我的意思是:
1:一个变量最多可以容纳多少字符
2:批处理的窗口最多能显示多少字符或者行数
3:一次写入文本的字符最多数量是多少
等等,好象都是最多哦^_^
谢谢 谢谢
还有吗?
作者: pusofalse 时间: 2008-10-29 16:54
set 不能单独替换*与=,不过结合for的delims=,可以弥补这个不足~- @echo off
- ::把%var%中的*或=删除,只留下abcdef。
- set "var=a*b*c*d*e*f" & set "char=*"
-
- :loop
- set "str="
- echo var替换前: %var%
- for /f "delims=" %%a in ("%var%") do call :recur "%%a"
- echo var替换后: %str%
- echo.
- echo %var%| findstr "\*">nul && (
- set "var=a=b=c=d=e=f"
- set "char=="
- goto :loop
- )
- pause>nul & exit /b
-
- :recur
- for /f "tokens=1* delims=%char%" %%a in ("%~1") do (
- set "str=%str%%%a"
- if "%%~b" neq "" call :recur "%%b"
- )
复制代码
注意用call传递参数时,要用""将其闭合,因为=是默认分隔符,当然也可以用%*来代替%~1。 delims=不能用"作为分隔符,但set可以,总之它们之间有种互补的关系吧,打破这个限制。
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |