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

大概涉及到变量嵌套了,可以参考一下这个帖子,我也正在学习中...批处理中的变量嵌套变量用法
  1. @echo off
  2. for /f "skip=1 tokens=1,2" %%a in (Test.txt) do (
  3.         call echo %%a\%%b
  4. )
  5. pause
复制代码


我能写出来,但是我也不是很清楚为什么要这样写
要是判断 可以call set m=%%a 在for语句里面判断需要开启延迟变量
更新
  1. @echo off
  2. for /f "skip=1 tokens=1,2" %%a in (Test.txt) do (
  3.         call if exist %%a\%%b (
  4.                 echo 存在
  5.         )
  6. )
  7. pause
复制代码


这样居然也可以
1

评分人数

    • lonron: 解燃眉之急技术 + 1
bat小白,请多指教!谢谢!

TOP

本帖最后由 77七 于 2023-1-26 21:39 编辑

回复 6# lonron

把%%a赋值给m,在for语句里面判断 要开
直接判断就不用了

回复 7# lonron
写成多行吧,我也不明白
bat小白,请多指教!谢谢!

TOP

回复 10# lonron

看来不能乱用,估计call把 if和echo当成两条命令了
楼上两位大神已提供教科书般答案,我在续写一下我昨晚提到的call set,如果开延迟变量,可以省略赋值n,把if写到for语句里面
  1. @echo off
  2. for /f "skip=1 tokens=1,2" %%a in (Test.txt) do (
  3.         call set "m=%%a"
  4.         set "n=%%b"
  5. )
  6. if exist "%m%\%n%" (
  7.         echo 存在"%m%\%n%"
  8. )
  9. pause
复制代码
bat小白,请多指教!谢谢!

TOP

返回列表