找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 20786|回复: 10

[文件操作] [已解决]求,将多个批处理脚本识别并显示,且可以调用

[复制链接]
发表于 2023-5-23 20:52:24 | 显示全部楼层 |阅读模式
本帖最后由 BingjianREMIX 于 2023-5-27 14:34 编辑

在原脚本的目录下有一个“mod”文件夹,里面有多个批处理脚本,想要让原脚本识别mod里的脚本并显示出来,而且支持调用,有解决的可能性吗,凭我这小白,实在只能想到dir,但是看了cmd,跟dir好像没有什么关系,应该是通过某些能显示文件的命令,然后输出到mod.ini,然后程序通过mod.ini调用bat脚本(是这样的吧),实在拙见,有劳各位大佬了

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2023-5-23 23:48:17 | 显示全部楼层
原脚本-第1步-识别.bat
  1. @echo off
  2. cd /d "%~dp0"
  3. dir /b /a-d "mod\*.bat"
  4. pause
复制代码
你说的识别是这个意思吗?
请举例说明下一步想怎么做。
发表于 2023-5-24 06:47:50 | 显示全部楼层
  1. @echo off
  2. dir %cd%\mod\*.bat>mod.ini
复制代码
至于调用,dir输出还有时间还有大小啥的,调用要用到for/f分割出每一行的指定内容,再保存下来以后才能调用,所以容我再憋一会儿
 楼主| 发表于 2023-5-26 19:37:45 | 显示全部楼层
原脚本-第1步-识别.bat你说的识别是这个意思吗?
请举例说明下一步想怎么做。
Batcher 发表于 2023-5-23 23:48



    是,但是我想将其echo出来(应该可以设置其变量,然后输出的吧)

echo的格式:
  1. echo.
  2. echo 1.%bat1%
  3. echo.
  4. echo 2.%bat2%
  5. echo.
  6. ...
复制代码
发表于 2023-5-26 22:59:13 | 显示全部楼层
回复 4# BingjianREMIX
  1. @echo off
  2. cd /d "%~dp0"
  3. setlocal enabledelayedexpansion
  4. set "n=0"
  5. for /f "delims=" %%i in ('dir /b /a-d "mod\*.bat"') do (
  6.     set /a n+=1
  7.     set bat_!n!=%%i
  8. )
  9. echo 1. %bat_1%
  10. echo 2. %bat_2%
  11. echo 3. %bat_3%
  12. endlocal
  13. pause
复制代码
 楼主| 发表于 2023-5-26 23:14:56 | 显示全部楼层
回复  BingjianREMIX
Batcher 发表于 2023-5-26 22:59


最多也只有3个啊,多出来的也不好看
发表于 2023-5-26 23:26:14 | 显示全部楼层
回复 6# BingjianREMIX
  1. @echo off
  2. cd /d "%~dp0"
  3. setlocal enabledelayedexpansion
  4. set "n=0"
  5. for /f "delims=" %%i in ('dir /b /a-d "mod\*.bat"') do (
  6.     set /a n+=1
  7.     set bat_!n!=%%i
  8. )
  9. for /l %%i in (1,1,!n!) do (
  10.     echo %%i. !bat_%%i!
  11. )
  12. endlocal
  13. pause
复制代码
 楼主| 发表于 2023-5-27 13:23:37 | 显示全部楼层
回复  BingjianREMIX
Batcher 发表于 2023-5-26 23:26
但是调用呢
发表于 2023-5-27 13:36:18 | 显示全部楼层
本帖最后由 77七 于 2023-5-27 13:40 编辑

回复 8# BingjianREMIX


   第10行改为
  1. start /i "" "mod\!bat_%%i!"
复制代码
 楼主| 发表于 2023-5-27 13:43:07 | 显示全部楼层
回复 9# 77七


    要选择啊,我承认,我都没看太懂
发表于 2023-5-27 13:50:25 | 显示全部楼层
回复 10# BingjianREMIX


  
  1. @echo off
  2. cd /d "%~dp0"
  3. setlocal enabledelayedexpansion
  4. set "n=0"
  5. for /f "delims=" %%i in ('dir /b /a-d "mod\*.bat"') do (
  6.     set /a n+=1
  7.     set bat_!n!=%%i
  8. )
  9. for /l %%i in (1,1,!n!) do (
  10.     echo 序号:%%i 批处理名 !bat_%%i!
  11. )
  12. set /p m=输入序号,空格分隔:
  13. for %%a in (!m!) do (
  14.         start /i "" "mod\!bat_%%a!"
  15. )
  16. endlocal
  17. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
BingjianREMIX + 1 又学到新的bat

查看全部评分

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

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 21:11 , Processed in 0.020686 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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