标题: [文件操作] [已解决]求,将多个批处理脚本识别并显示,且可以调用 [打印本页]
作者: BingjianREMIX 时间: 2023-5-23 20:52 标题: [已解决]求,将多个批处理脚本识别并显示,且可以调用
本帖最后由 BingjianREMIX 于 2023-5-27 14:34 编辑
在原脚本的目录下有一个“mod”文件夹,里面有多个批处理脚本,想要让原脚本识别mod里的脚本并显示出来,而且支持调用,有解决的可能性吗,凭我这小白,实在只能想到dir,但是看了cmd,跟dir好像没有什么关系,应该是通过某些能显示文件的命令,然后输出到mod.ini,然后程序通过mod.ini调用bat脚本(是这样的吧),实在拙见,有劳各位大佬了
作者: Batcher 时间: 2023-5-23 23:48
原脚本-第1步-识别.bat- @echo off
- cd /d "%~dp0"
- dir /b /a-d "mod\*.bat"
- pause
复制代码
你说的识别是这个意思吗?
请举例说明下一步想怎么做。
作者: LTSC1809 时间: 2023-5-24 06:47
- @echo off
- dir %cd%\mod\*.bat>mod.ini
复制代码
至于调用,dir输出还有时间还有大小啥的,调用要用到for/f分割出每一行的指定内容,再保存下来以后才能调用,所以容我再憋一会儿
作者: BingjianREMIX 时间: 2023-5-26 19:37
原脚本-第1步-识别.bat你说的识别是这个意思吗?
请举例说明下一步想怎么做。
Batcher 发表于 2023-5-23 23:48
是,但是我想将其echo出来(应该可以设置其变量,然后输出的吧)
echo的格式:- echo.
- echo 1.%bat1%
- echo.
- echo 2.%bat2%
- echo.
- ...
复制代码
作者: Batcher 时间: 2023-5-26 22:59
回复 4# BingjianREMIX - @echo off
- cd /d "%~dp0"
- setlocal enabledelayedexpansion
- set "n=0"
- for /f "delims=" %%i in ('dir /b /a-d "mod\*.bat"') do (
- set /a n+=1
- set bat_!n!=%%i
- )
- echo 1. %bat_1%
- echo 2. %bat_2%
- echo 3. %bat_3%
- endlocal
- pause
复制代码
作者: BingjianREMIX 时间: 2023-5-26 23:14
回复 BingjianREMIX
Batcher 发表于 2023-5-26 22:59
最多也只有3个啊,多出来的也不好看
作者: Batcher 时间: 2023-5-26 23:26
回复 6# BingjianREMIX - @echo off
- cd /d "%~dp0"
- setlocal enabledelayedexpansion
- set "n=0"
- for /f "delims=" %%i in ('dir /b /a-d "mod\*.bat"') do (
- set /a n+=1
- set bat_!n!=%%i
- )
- for /l %%i in (1,1,!n!) do (
- echo %%i. !bat_%%i!
- )
- endlocal
- pause
复制代码
作者: BingjianREMIX 时间: 2023-5-27 13:23
回复 BingjianREMIX
Batcher 发表于 2023-5-26 23:26
但是调用呢
作者: 77七 时间: 2023-5-27 13:36
本帖最后由 77七 于 2023-5-27 13:40 编辑
回复 8# BingjianREMIX
第10行改为- start /i "" "mod\!bat_%%i!"
复制代码
作者: BingjianREMIX 时间: 2023-5-27 13:43
回复 9# 77七
要选择啊,我承认,我都没看太懂
作者: 77七 时间: 2023-5-27 13:50
回复 10# BingjianREMIX
- @echo off
- cd /d "%~dp0"
- setlocal enabledelayedexpansion
- set "n=0"
- for /f "delims=" %%i in ('dir /b /a-d "mod\*.bat"') do (
- set /a n+=1
- set bat_!n!=%%i
- )
- for /l %%i in (1,1,!n!) do (
- echo 序号:%%i 批处理名 !bat_%%i!
- )
- set /p m=输入序号,空格分隔:
- for %%a in (!m!) do (
- start /i "" "mod\!bat_%%a!"
- )
- endlocal
- pause
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |