批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程
[批处理文件精品]批处理版照片整理器[批处理文件精品]纯批处理备份&还原驱动在线第三方下载
返回列表 发帖

[系统相关] 批处理命令set 如何查看指定变量?



如上图我想仅查看 test_1 变量,却显示了 test_1 和 test_10,请问没有办法只显示 test_1?

万分感谢。
附件: 您需要登录才可以下载或查看附件。没有帐号?注册
欢迎与我交流,共同进步,提升技术。

回复 1# verbs


set命令的特性决定了它无法像你希望的那样工作:
SET command invoked with just a variable name, no equal sign or value
will display the value of all variables whose prefix matches the name
given to the SET command.  For example:
    SET P
would display all variables that begin with the letter 'P'


有什么特别的原因必须要用set而不能用echo吗:
  1. echo %test_1%
复制代码
【批处理在线视频分享】http://bbs.bathome.net/thread-31727-1-1.html
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html

我帮忙写的代码不需要付钱,不用找我要支付宝或微信账号。如果一定要给,请到微信群给大家发红吧。

TOP

本帖最后由 verbs 于 2020-2-27 13:32 编辑

感谢大神指点,
我希望根据变量名不同,取到不是的变量值,所以不无法直接使用 echo

测试脚本如下:
  1. @echo off
  2. set index=1
  3. :loop_get_value
  4. set test=test_%index%
  5. set | findstr /i /b "\<%test%\>">nul || goto parameters_error
  6. for /f "usebackq delims== tokens=2" %%i in (`set %test%`) do (
  7. echo %%i
  8. )
  9. set /a index+=1
  10. goto loop_get_value
  11. :parameters_error
  12. echo 参数不存在
  13. pause
  14. goto lable_exit
  15. :lable_exit
复制代码
有没有其它办法,可以实现类似效果,感谢指点
欢迎与我交流,共同进步,提升技术。

TOP

回复 3# verbs


不知道这个代码是想表达什么意图
但是执行到第5行的时候肯定会 goto parameters_error
第6行永远不会被执行到
【批处理在线视频分享】http://bbs.bathome.net/thread-31727-1-1.html
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html

我帮忙写的代码不需要付钱,不用找我要支付宝或微信账号。如果一定要给,请到微信群给大家发红吧。

TOP

回复 4# Batcher


是的这段代码没有实际意义,主是要实现取的变量的变量值(....>o<....   有点绕)

第五行,不是肯定执行到 goto parameters_erro, 当前的表达式为真时不会执 || 后面的表达式

所以的第六行可以被执行到
欢迎与我交流,共同进步,提升技术。

TOP

本帖最后由 zaqmlp 于 2020-2-27 14:02 编辑

开延迟就行了,判断存不存在可用define
  1. set a=1
  2. set b_1=2
  3. call echo;%%b_%a%%%
  4. setlocal enabledelayedexpansion
  5. echo;!b_%a%!
  6. pause
复制代码
提供bat代写,为你省时省力省事,支付宝扫码头像支付
QQ: 956535081

TOP

回复 5# verbs


有几个变量嵌套的例子可以参考一下
http://bbs.bathome.net/thread-2899-1-1.html
【批处理在线视频分享】http://bbs.bathome.net/thread-31727-1-1.html
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html

我帮忙写的代码不需要付钱,不用找我要支付宝或微信账号。如果一定要给,请到微信群给大家发红吧。

TOP

回复 7# Batcher


    非常感谢,学习了。
欢迎与我交流,共同进步,提升技术。

TOP

返回列表