标题: CSet64 v1.0 用于64位环境的简化版ConSet [打印本页]
作者: CrLf 时间: 2015-5-18 16:55 标题: CSet64 v1.0 用于64位环境的简化版ConSet
制作 CSet64 是因为在 64 位环境下的 ConSet 不能正常赋值,而又找不到替代品
ConSet 的原作者已无法联系,没法用源码重新编译,索性自己做了一个阉割版的
功能和语法都是模仿原程序的逻辑,功能只减不增,但基本的几个功能都尽量实现了
至于函数和三目运算符什么的,没有好办法,就不搞了
部分代码来自网络,有大幅改动:
主体功能基于:http://www.bathome.net/viewthread.php?tid=19036 (4楼)
算式解析部分基于:http://bbs.bccn.net/thread-245044-1-1.html
附 ConSet 链接:http://www.bathome.net/viewthread.php?tid=12865
CSet64 v1.0 简化版的 ConSet (64位)
http://www.bathome.net CrLf
CSet64 [options] [name[=[value]]]
CSet64 [/E][/N][/V] [ [/RANDOM] | [/D string] |
[/A expr|<file] | [ [</C|/P[H]> name=value] |
[/M | /U | /T name[=[value]]] |
[name[=[value|`command`]]]]]
/? 显示帮助
/HELP 显示帮助
/A 'expr' 允许计算一个表达式,支持浮点运算
格式: "variable=expression,variable=expression,..."
EX: CSet64 /A "cents=523,dollars=cents/100"
支持的运算符:
( ) 组
++ -- 自加自减
** 次方
!expr ~ 一元位运算
expr! 阶乘
/ * 算数运算符(\ 运算符用于整除)
\ %
+ -
>> << 位移
>= > <= < 条件运算
!= ==
& 按位与r
^ 按位异
| 按位或
&& 逻辑与
|| 逻辑或
, 逗号运算符
/C 将 value 连接到 VAR 变量后
EX: CSet64 /C VAR=value
CSet64 /C VAR= %NewElement%
/D 删除指定范围的变量,下例删除 MyVars_ 开头的变量
EX: CSet64 /D MyVars_
/E 扩展变量
EX: CSet64 /E VAR=%%VAR2%%
/H 用在 /P 中,可隐藏输入
EX: CSet64 /PH PassWord=What is your password?
/M 设置系统环境变量,影响本机所有用户
EX: CSet64 /M var=value
/P 提示信息,并等待一行输入
EX: CSet64 /P UserName=What is your name?
/T 设置临时环境变量,注销后失效
EX: CSet64 /T var=value
/U 设置当前用户的环境变量
EX: CSet64 /U var=value
/PID[=PID] 操作指定 PID 的进程(不能用于罗列其他进程的变量表)
EX: CSet64 /PID=245
/RANDOM 获取一个随机数,以时间和进程 PID 做种子
EX: CSet64 /RANDOM
其他说明:
支持从重定向获取输入,或以 ` 的形式启用匿名管道(就像 for /f 一样)
CSet64 var=`DIR /B^|FIND ".cmd"`
制作 CSet64 是因为在 64 位环境下的 ConSet 不能正常赋值,而又找不到替代品
ConSet 的原作者已无法联系,没法用源码重新编译,索性自己做了一个阉割版的
功能和语法都是模仿原程序的逻辑,功能只减不增,但基本的几个功能都尽量实现了
至于函数和三目运算符什么的,没有好办法,就不搞了
部分代码来自网络,有大幅改动:
主体功能基于:http://www.bathome.net/viewthread.php?tid=19036 (4楼)
算式解析部分基于:http://bbs.bccn.net/thread-245044-1-1.html
可执行文件压缩包,内含 32 位与 64 位版本,但需要使用 32 位的情况建议改用 ConSet:
http://bcn.bathome.net/s/tool/index.html?key=CSet
源代码,使用 gcc 编译:
链接: https://pan.baidu.com/s/1TEZgkxXMa586mz_2YqCR6w?pwd=es56
作者: CrLf 时间: 2015-5-18 18:27
主要用途:- 1、复杂浮点运算
- 2、将重定向或管道输入赋值给变量
- 3、变量内容可以跨行
- 4、读写其他进程变量
- 5、永久修改本地变量
复制代码
其实都是 ConSet 已有的功能,区别只在于支持 64 位,所以 ConSet 适用的情况下建议还是用 ConSet
作者: tmplinshi 时间: 2015-11-25 13:41
win7 x64
作者: CrLf 时间: 2015-11-25 14:02
回复 3# tmplinshi
试试 32 位 cmd 能否运行 conset?
作者: tmplinshi 时间: 2015-11-25 14:24
本帖最后由 tmplinshi 于 2015-11-25 14:54 编辑
跟 64 位 CMD 一样,不能正常赋值。
作者: CrLf 时间: 2015-11-25 15:07
本帖最后由 CrLf 于 2015-11-25 15:08 编辑
回复 5# tmplinshi
如果 conset 在 32 位下出问题,那 cset64 也会出同样的问题,因为是使用基于同一套 API 实现 HOOK 的
猜测有几种可能:- 1、杀软拦截 API 注入
- 2、CMDRead 或其他的控制台增强工具造成干扰
- 3、系统差异
复制代码
作者: tmplinshi 时间: 2015-11-25 15:26
好吧,估计是我系统哪里异常。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |