楼 主
关于判断文件名的批处理!急!!!在线等!!!
发表于 2009-04-11 06:51 · 中国 贵州 遵义 电信
初级用户
★
积分 20 发帖 20 注册 2009-04-10 03:30 17年会员 UID 142557 性别 男
状态 离线
1、我需要这样一个批处理:
读取指定目录里的文件名,然后判断如果有相应的文件名则goto到下一步,否则终止。
比如:
c:\下有 *****123.txt 文件,就需要判断是否存在一个文件名包含123的,如果有则继续,否则退出。
2、还有这样一个批处理:
在一个文本文档中包含路径,但需要变成运行批处理后,将这个路径设定为%systemroot%之类,如文本文档中有:
%123%\windows\system32\
就需要运行批处理后将这个文档中的%123%变成系统的系统根目录:c:\windows\system32\
希望大家帮忙,谢谢了!!!!
[ Last edited by crysis on 2009-4-11 at 06:57 ]
第 2 楼
发表于 2009-04-11 07:02 · 中国 北京 联通
银牌会员
★★★★
[b]看你妹啊[/b]
积分 1,488 发帖 1,357 注册 2006-05-20 12:00 20年会员 UID 55770
状态 离线
dir /b c:\*.txt|findstr /ric:".*123\.txt"&&goto :ne
有问题请发论坛或者自行搜索,再短消息问我的统统是SB
第 3 楼
发表于 2009-04-11 07:04 · 中国 贵州 遵义 电信
初级用户
★
积分 20 发帖 20 注册 2009-04-10 03:30 17年会员 UID 142557 性别 男
状态 离线
第 4 楼
发表于 2009-04-11 07:05 · 中国 北京 联通
银牌会员
★★★★
[b]看你妹啊[/b]
积分 1,488 发帖 1,357 注册 2006-05-20 12:00 20年会员 UID 55770
状态 离线
有问题请发论坛或者自行搜索,再短消息问我的统统是SB
第 5 楼
发表于 2009-04-11 07:09 · 中国 湖北 黄石 电信
中级用户
★★
积分 330 发帖 244 注册 2006-04-14 14:07 20年会员 UID 53823 性别 男 来自 湖北
状态 离线
if not exist c:\*123.txt goto:eof
第 6 楼
发表于 2009-04-11 07:10 · 中国 广东 东莞 电信
银牌会员
★★★
批处理编程迷
积分 1,916 发帖 752 注册 2008-12-28 04:30 17年会员 UID 135147 性别 男 来自 广西
状态 离线
@echo off&setlocal ENABLEDELAYEDEXPANSION
for /r d:\dd %%a in (*.*) do (set name=%%~na&if not "!name:123=!"=="!name! goto :continu)
goto :eof
:continu
...
第一个问题是不是这样,
第二个不明白。。。
第 7 楼
发表于 2009-04-11 07:18 · 中国 贵州 遵义 电信
初级用户
★
积分 20 发帖 20 注册 2009-04-10 03:30 17年会员 UID 142557 性别 男
状态 离线
if not exist c:\*123*.txt goto:eof
这样的话就可以判断文件中部的文字了,谢谢!
第 8 楼
发表于 2009-04-11 07:18 · 中国 贵州 遵义 电信
初级用户
★
积分 20 发帖 20 注册 2009-04-10 03:30 17年会员 UID 142557 性别 男
状态 离线
Originally posted by netbenton at 2009-4-11 07:10:
@echo off&setlocal ENABLEDELAYEDEXPANSION
for /r d:\dd %%a in (*.*) do (set name=%%~na&if not "!name:123=!"=="!name! goto :continu)
goto :eof
:continu
...
第 ...
这个真复杂!
第 9 楼
发表于 2009-04-11 07:21 · 中国 湖北 黄石 电信
中级用户
★★
积分 330 发帖 244 注册 2006-04-14 14:07 20年会员 UID 53823 性别 男 来自 湖北
状态 离线
第 10 楼
发表于 2009-04-11 07:31 · 中国 湖北 黄石 电信
中级用户
★★
积分 330 发帖 244 注册 2006-04-14 14:07 20年会员 UID 53823 性别 男 来自 湖北
状态 离线
不能贴出来吗~~~
不知下面的命令是否符合你的要求
for /f "tokens=1* delims=\" %%i in (1.txt) do echo "c:\%%~j"
第 11 楼
发表于 2009-04-11 07:35 · 中国 贵州 遵义 电信
初级用户
★
积分 20 发帖 20 注册 2009-04-10 03:30 17年会员 UID 142557 性别 男
状态 离线
第 12 楼
发表于 2009-04-11 07:52 · 中国 贵州 遵义 电信
初级用户
★
积分 20 发帖 20 注册 2009-04-10 03:30 17年会员 UID 142557 性别 男
状态 离线
文本的全部内容:
[boot loader]
timeout=0
default=%123%\grldr.mbr
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
%123%\grldr.mbr="TEST"
就是想运行批处理后让 %123% 变成Windows所在的盘符比如:c:\ d:\等等
第 13 楼
发表于 2009-04-11 07:54 · 中国 广东 东莞 电信
银牌会员
★★★
批处理编程迷
积分 1,916 发帖 752 注册 2008-12-28 04:30 17年会员 UID 135147 性别 男 来自 广西
状态 离线
set 123=c:\
for /f "delims=" %%a in (aa.txt) do call echo.%%a
呵呵,这个不行,变量不可以是数字开头,不好意思,发错了。
[ Last edited by netbenton on 2009-4-11 at 06:04 ]
第 14 楼
发表于 2009-04-11 07:57 · 中国 贵州 遵义 电信
初级用户
★
积分 20 发帖 20 注册 2009-04-10 03:30 17年会员 UID 142557 性别 男
状态 离线
第 15 楼
发表于 2009-04-11 08:19 · 中国 广东 东莞 电信
银牌会员
★★★
批处理编程迷
积分 1,916 发帖 752 注册 2008-12-28 04:30 17年会员 UID 135147 性别 男 来自 广西
状态 离线
@echo off
set 123=%systemroot%
for /f "delims=" %%a in (b.txt) do set a=%%a& call :sub
Pause
goto :eof
:sub
setlocal ENABLEDELAYEDEXPANSION
set a=!a:%%=###!
endlocal&set a=%a%
set a=%a:###=!%
setlocal ENABLEDELAYEDEXPANSION
echo.%a%
endlocal
goto :eof
这次可以了
论坛跳转:
— 请选择 —
站务公告 & 版主讨论
意见反馈 & 网友交流
DOS学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正