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

【挑战】批处理如何获取冒号开头变量名的值

没有挑战的意思;只是问题难度太大,怕是不好解决;
--------------------------------------------------------
我想这类变量名非传统方法可访问,自有其特殊用途;
目前除了set : 这样列出:开头的变量名列表外,好像没办法了
  1. set :var=123456
复制代码
求 用%%,  或者!! 显示:var 变量值的方法

细想之,恐怕无解;
这个~,=,这类特殊字符的替换,一个难度;

TOP

本帖最后由 neorobin 于 2012-4-13 16:05 编辑
  1. for /f "tokens=1* delims==" %%a in ('set :^|findstr /i "^:var"') do if /i "%%a"==":var" echo %%b
复制代码

TOP

本帖最后由 plp626 于 2012-4-13 16:12 编辑

回复 3# neorobin
  1. cmd/v
  2. set $0a=^
  3. set :var=!$0a!123456
  4. set :
  5. echo ----------------------
  6. set :var|findstr /ib :var
复制代码

TOP

回复 3# neorobin


    用了 if , findstr 没必要
  1. for /f "tokens=1* delims==" %%a in ('set :') do if /i "%%a"==":var" echo %%b
复制代码

TOP

回复 4# plp626

这样还得挑战了

TOP

想了一下,这类东西不切实际哇,使用时尽量回避

TOP

路過
  1. @echo off
  2. set :var=123456
  3. set/a n=:var
  4. echo %n%
  5. pause
复制代码
带内地用语或带里语的文章,在下读写总觉有点吃力;
如误解了各位意思的讲勿见怪   ^_^

TOP

是么
  1. @echo off
  2. set :var=123456
  3. setlocal disableextensions
  4. echo %:var%
  5. pause
复制代码
2

评分人数

    • plp626: 很好,这个语法以前未曾重视, 学习之。技术 + 1
    • CrLf: setlocal disableextensions技术 + 1

TOP

回复 9# Demon
Demon 大哥果然牛人、
有句话说的好啊,多学一点知识,少写几行代码、
求老大赐我《精通正则表达式》

TOP

回复 9# Demon


    哈哈,好办法,关闭命令扩展从本质上避免了错误解析,一直觉得它是鸡肋,原来可以用在这里

TOP

趁这个机会把特殊字符替换研究研究,也许是个突破口。。。

TOP

返回列表