无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 8043|回复: 18
打印 上一主题 下一主题

[已解决] 批处理一个for语句中怎么把值赋给多个变量?

[复制链接]
1#
发表于 2021-6-12 22:07:19 | 显示全部楼层
本帖最后由 dos时代菜鸟 于 2021-6-12 22:08 编辑

这样 26个 分区都有 这个文件,也可以找出来。

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set file_name=5566.txt
  4. set n=0
  5. for %%i in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
  6.         if exist %%i:\!file_name! (
  7.                 set /a n+=1
  8.                 set pan!n!=%%i
  9.         )
  10. )
  11. for /l %%i  in (1,1,!n!) do (
  12.         if defined pan%%i echo 找到第%%i个分区 !pan%%i!:
  13. )
  14. pause
复制代码

点评

@echo off setlocal enabledelayedexpansion set n=0 m=0 for %%i in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do ( if exist %%i:\5566.TXT ( set /a n+=1 set pan!n!=%%i:\ call call e  详情 回复 发表于 2021-6-12 22:56

评分

参与人数 1无忧币 +3 收起 理由
being + 3 简洁,喜欢。

查看全部评分

回复

使用道具 举报

2#
发表于 2021-6-12 23:17:54 | 显示全部楼层
江南一根葱 发表于 2021-6-12 22:56
@echo off
setlocal enabledelayedexpansion
set n=0

点评

想把一个程序写得很完善不容易啊,真不懂的话就查,查不到就问  详情 回复 发表于 2021-6-12 23:39
看哪一个简单就用哪个,复杂的难理解。毕竟也不是系统化学习的,什么都写得出来。  详情 回复 发表于 2021-6-12 23:36
回复

使用道具 举报

3#
发表于 2021-6-13 00:18:51 | 显示全部楼层
慢慢来吧
批处理其实 不难,核心命令 没几个

setlocal 环境设置语句
for  循环语句
if   条件语句
set  赋值语句
goto 跳转语句
call    调用语句
echo 信息输出语句
exit   退出语句

我通常只记住有上面几个,而且还记不住内容,只知道有这么几个语句,然后需要的时候再查。
哈哈哈
回复

使用道具 举报

4#
发表于 2021-6-13 10:48:19 | 显示全部楼层
本帖最后由 dos时代菜鸟 于 2021-6-13 10:52 编辑
kkkssc 发表于 2021-6-12 23:31
@echo off
mode 120,50
set n=1

dir /s /b /a-d %pan%:\5566.txt

findstr 是外部命令,主要用于 字符串 查找,优势是 正则表达式,对于一般的 字符确认类操作,能用 内部命令的最好,因为有的系统可能没有这个外部命令。

点评

有道理,,你这个命令更高效  详情 回复 发表于 2021-6-13 13:40
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-5-22 19:51

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表