![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-09 13:57 |
共 47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,254 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 求一个取文件名变量的 BAT |
| 可打印版本 1,524 / 12 |
| 第1楼 pzppzp | 发表于 2007-07-25 21:58 |
| 初级用户 发帖 52 积分 110 | |
|
求一个取文件名变量的 BAT 功能:
搜索当前目录(不含子目录)的 BIN 文件,如果有两个或两个以上 BIN 文件,则设置: SET GMAME=ERER 如果没有 BIN 文件,则设置: SET GMAME=ER 如果只有一个 BIN 文件,则设置: SET GMAME=BIN文件名 不包含后缀,比如:目录下有一个 DF54.BIN 则: SET GMAME=DF54 求高手帮忙! |
|
| 第2楼 wudixin96 | 发表于 2007-07-25 22:08 |
| 银牌会员 发帖 931 积分 1,928 | |
|
没测试,试试? 呵呵,粗心了,少了个)。没把for包好了。 [ Last edited by wudixin96 on 2007-7-26 at 07:26 AM ] |
|
| 第3楼 pzppzp | 发表于 2007-07-25 23:15 |
| 初级用户 发帖 52 积分 110 | |
|
for /f "delims=" %%i in ('dir /b^|find /c "bin"') do (
if %%i geq 2 ( set gmame=erer ) else ( if %%i==1 (set gmame=bin%%~ni) else (set gmame=er) ) 我把上面六行直接复制到一个BAT文件里,有错误,一运行就退出 |
|
| 第4楼 pzppzp | 发表于 2007-07-26 16:07 |
| 初级用户 发帖 52 积分 110 | |
|
有错:
当只有一个BIN文件时,比如 123.bin 返回 set gmame=bin1 而不是不带后缀的文件名 set gmame=123 |
|
| 第5楼 qasa | 发表于 2007-07-26 17:09 |
| 高级用户 发帖 311 积分 959 来自 广东-LianJiang | |
|
正确应该是这样的: |
|
| 第6楼 ansipeter | 发表于 2007-07-26 17:16 |
| 中级用户 发帖 130 积分 269 | |
|
在给另外一种解法
|
|
| 第7楼 pzppzp | 发表于 2007-07-26 19:25 |
| 初级用户 发帖 52 积分 110 | |
|
谢谢,可以了
这里高手真多 |
|
| 第8楼 26933062 | 发表于 2007-07-26 22:52 |
| 银牌会员 发帖 879 积分 2,268 | |
|
@ECHO OFF
set num=0 setlocal ENABLEDELAYEDEXPANSION for /f "delims=" %%i in ('dir/b e:\111\*.txt') do ( set var=%%~ni if exist "%%i" set/a num+=1 ) if %num% equ 0 set GMAME=ER&goto tui if %num% geq 2 (set GMAME=ERER) else set GMAME=%var% :tui echo %GMAME% pause |
|
| 第9楼 pzppzp | 发表于 2007-07-27 09:42 |
| 初级用户 发帖 52 积分 110 | |
|
按5楼的试了,昨天在XP下,硬盘上,正常
今天刻到启动光盘根目录上,用此光盘启动电脑,从AUTOEXEC.BAT调用运行此BAT出错,显示: Write protect error writing drive A 难道这个BAT不能在纯DOS下运行或不能在只读盘上运行吗? |
|
| 第10楼 wudixin96 | 发表于 2007-07-27 09:50 |
| 银牌会员 发帖 931 积分 1,928 | |
|
还真不知道纯DOS下是否支持for 扩展的。
|
|
| 第11楼 digger | 发表于 2007-07-27 10:03 |
| 初级用户 发帖 29 积分 79 来自 湖南 | |
|
纯DOS下的for是个光杆司令,不支持 /f、/r、/d、/l 开关。
|
|
| 第12楼 pzppzp | 发表于 2007-07-27 12:00 |
| 初级用户 发帖 52 积分 110 | |
|
看样子在DOS下没法实现这功能了
|
|
| 第13楼 ben | 发表于 2008-08-27 15:14 |
| 新手上路 发帖 6 积分 12 | |
|
高手真多啊
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |