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

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 编译:
附件: 您需要登录才可以下载或查看附件。没有帐号?注册
4

评分人数

主要用途:
  1. 1、复杂浮点运算
  2. 2、将重定向或管道输入赋值给变量
  3. 3、变量内容可以跨行
  4. 4、读写其他进程变量
  5. 5、永久修改本地变量
复制代码
其实都是 ConSet 已有的功能,区别只在于支持 64 位,所以 ConSet 适用的情况下建议还是用 ConSet

TOP



win7 x64

TOP

回复 3# tmplinshi


    试试 32 位 cmd 能否运行 conset?

TOP

本帖最后由 tmplinshi 于 2015-11-25 14:54 编辑

跟 64 位 CMD 一样,不能正常赋值。

TOP

本帖最后由 CrLf 于 2015-11-25 15:08 编辑

回复 5# tmplinshi


    如果 conset 在 32 位下出问题,那 cset64 也会出同样的问题,因为是使用基于同一套 API 实现 HOOK 的
    猜测有几种可能:
  1. 1、杀软拦截 API 注入
  2. 2、CMDRead 或其他的控制台增强工具造成干扰
  3. 3、系统差异
复制代码

TOP

好吧,估计是我系统哪里异常。

TOP

返回列表