![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-09 17:42 |
共 47,811 主题排行 / 349,896 发帖 / 今日 1 篇 / 48,254 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 请教一个批处理!谢谢! |
| 可打印版本 1,824 / 15 |
| 第1楼 qdjlc | 发表于 2008-09-07 17:50 |
| 新手上路 发帖 7 积分 18 | |
|
请教一个批处理!谢谢! 我的一个测试文件夹里有5.txt,6.exe,7.dll 3个文件
我不定时会放进来哪种类型文件! 假如我放进来个8.txt的话,用他替换掉5.txt 用批处理: del 5.txt 可以达到我的目的 ren *.txt 5.txt 假如我放进来个4.exe的话,用他替换掉6.exe 用批处理: del 6.exe 可以达到我的目的 ren *.exe 6.exe 假如我放进来个9.dll的话,用他替换掉7.dll 用批处理: del 7.dll 可以达到我的目的 ren *.dll 7.dll 我想把3个bat和为一个bat: 判断有没有5.txt以外的txt文件,有就执行 没有就不执行x下面这2句 del 5.txt ren *.txt 5.txt 判断有没有6.exe以外的txt文件,有就执行 没有就不执行x下面这2句 del 6.exe ren *.exe 6.exe 判断有没有5.txt以外的txt文件,有就执行 没有就不执行x下面这2句 del 7.dll ren *.dll 7.dll 其实就是请教高手上面“判断指定文件在不在”的批处理! 谢谢!! |
|
| 第2楼 slore | 发表于 2008-09-07 18:03 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
if /?
|
|
| 第3楼 qdjlc | 发表于 2008-09-07 18:22 |
| 新手上路 发帖 7 积分 18 | |
|
if比较指令的用法可以说得具体点吗??
谢谢!学习中! |
|
| 第4楼 HAT | 发表于 2008-09-07 18:22 |
| 版主 发帖 5,017 积分 9,023 | |
| 第5楼 HAT | 发表于 2008-09-07 18:23 |
| 版主 发帖 5,017 积分 9,023 | |
|
其实
del 5.txt ren *.txt 5.txt 可以合并成一句 move /y *.txt 5.txt |
|
| 第6楼 qdjlc | 发表于 2008-09-07 18:37 |
| 新手上路 发帖 7 积分 18 | |
|
先谢了!不过4楼的方法我试了!不行!!
|
|
| 第7楼 HAT | 发表于 2008-09-07 18:45 |
| 版主 发帖 5,017 积分 9,023 | |
|
Q: 为什么不行啊?
A: 去电线杆上找个老军医的手机,他是专治+包治这个的。如果治疗周期较长,建议列出你的测试环境、测试用例、出错信息,供大家帮助你解决问题。 |
|
| 第8楼 qdjlc | 发表于 2008-09-07 19:11 |
| 新手上路 发帖 7 积分 18 | |
|
呵呵!!我的现状如下
![]() 我会复制出去修改3个之中随意一个文件,然后以不同文件名放进来,这时我会根据文件类型点击其中一个bat ![]() ![]() ![]() 我就是要把3个bat合并!问题是我放入新的exe文件,exe文件替换是达到目的了! 可是sys和dll他自动会删除了!我就是请教如何加个比较指令!就是比较PcHide.sys(还有2个类似)在不在,在的话就执行删了PcHide.sys,把文件下新的 随意名.sys 重命名为PcHide.sys |
|
| 第9楼 hackate | 发表于 2008-09-07 19:21 |
| 中级用户 发帖 125 积分 228 | |
|
实在难于看懂楼主要表达的意思啊。真够汗
|
|
| 第10楼 HAT | 发表于 2008-09-07 19:30 |
| 版主 发帖 5,017 积分 9,023 | |
| 第11楼 hackate | 发表于 2008-09-07 19:33 |
| 中级用户 发帖 125 积分 228 | |
|
用楼上的hat兄的办法便可,看了半天终于理解你的意思..
他里面用for循环查找你这个文件夹是否有多余的.xx文件,如果找到就执行你要的效果.所以在你运行BAT的时候是不会乱删除的,也就是不会一打开不问青红皂白的就先把你的xx.dll或者xx.exe就删除了.用楼上的代码就成.. 楼上的代码就是三个BAT合并成一个效果啦.当然你也可以分开来执行,呵呵. |
|
| 第12楼 qdjlc | 发表于 2008-09-07 19:42 |
| 新手上路 发帖 7 积分 18 | |
|
汗!我相信对论坛的高手来说是小问题!!可是上面的答案还是不能达到我的目的呀!!
麻烦请加我qq:627892948 语音下! 谢谢! |
|
| 第13楼 hackate | 发表于 2008-09-07 21:04 |
| 中级用户 发帖 125 积分 228 | |
|
测试完成 @echo off
set SrcDir=C:\test for /f "tokens=*" %%a in ('dir /b "%SrcDir%\*.sys"') do ( if "%%a" neq "PcHide.sys" ( del "%SrcDir%\PcHide.sys" ren "%SrcDir%\%%~nxa" "PcHide.sys" ) ) for /f "tokens=*" %%a in ('dir /b "%SrcDir%\*.exe"') do ( if "%%a" neq "PcInit.exe" ( del "%SrcDir%\PcInit.exe" ren "%SrcDir%\%%~nxa" "PcInit.exe" ) ) for /f "tokens=*" %%a in ('dir /b "%SrcDir%\*.dll"') do ( if "%%a" neq "PcMain.dll" ( del "%SrcDir%\PcMain.dll" ren "%SrcDir%\%%~nxa" "PcMain.dll" ) ) 刚Hat兄疏漏了del 和ren命令需要路径的问题. |
|
| 第14楼 qdjlc | 发表于 2008-09-07 21:29 |
| 新手上路 发帖 7 积分 18 | |
Originally posted by hackate at 2008-9-7 09:04 PM: 谢谢你!!终于解决!! |
|
| 第15楼 HAT | 发表于 2008-09-07 21:34 |
| 版主 发帖 5,017 积分 9,023 | |
|
Re 13楼 我是在当前路径下测试的,确实忽略了这个问题,多谢指正。
|
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |