中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-07-05 03:32
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]判断文件夹与应用程序 查看 1,343 回复 8
楼 主 [求助]判断文件夹与应用程序 发表于 2006-12-26 19:09 ·  中国 四川 达州 电信
新手上路
积分 6
发帖 2
注册 2006-12-25 02:49
19年会员
UID 74487
性别 男
状态 离线
偶做的是个免疫补丁需要一些“判断”命令?

大家可能会说直接删除不就行了吧!可是有些东东是需要替换的。
我用“文件夹”冒充“EXE应用程序”两者之间怎么判断?判断是“文件夹”还是“EXE应用程序”

比如该系统没有打过补丁而是中毒 命令中能实现“判断”命令吗

判断出是应用程序 %windir%\logo1_.exe(发现病毒)

判断出是文件夹 %windir%\logo1_.exe(你已打过补丁)

该命令最好是XP自带。无许添加任何应用程序命令。

恳请高手给个典型的范例。谢谢
2 发表于 2006-12-26 21:05 ·  中国 广东 电信
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线

@echo off
pushd %windir%\logo1_.exe 2>nul&&echo 这是文件夹||echo 这是文件
popd
pause
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
redtek +5 2006-12-26 21:51
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
3 发表于 2006-12-26 21:52 ·  中国 北京 联通
金牌会员
★★★★
积分 2,902
发帖 1,147
注册 2006-09-21 12:00
19年会员
UID 63324
性别 男
状态 离线
真是巧妙,欣赏~~~
    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
4 发表于 2006-12-29 07:29 ·  中国 四川 达州 电信
新手上路
积分 6
发帖 2
注册 2006-12-25 02:49
19年会员
UID 74487
性别 男
状态 离线
十分感谢“namejm”提供的“pushd”命令!但下面的偶看了您的命令后无法实现判断


原文

@echo off

检查判断是否是文件夹、文件

pushd %windir%\logo1_.exe

如果判断出是(文件夹)则提示系统安全您已打过补丁!

反之(文件)发现病毒 goto Lite1

:Lite1
@echo -------------正在终止病毒进程-------------
@taskkill /im temp1.exe
md %windir%\logo1_.exe

检查判断 这有2个结果 偶需要跳转命令 自行设置失败由于对该命令不够熟悉!
请再次给个经典的演示代码。
5 发表于 2006-12-29 07:36 ·  中国 广东 电信
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
  pushd 和 popd 要配对使用,进入某个文件夹之后再返回当前目录,以防止工作目录发生改变。演示代码如下:

@echo off
pushd %windir%\logo1_.exe 2>nul&&echo 系统安全,您已打过补丁!||goto Lite1
popd
pause
goto :eof

:Lite1
@echo -------------正在终止病毒进程-------------
@taskkill /im temp1.exe
md %windir%\logo1_.exe
pause
goto :eof
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
6 发表于 2006-12-29 07:51 ·  中国 北京 朝阳区 联通
高级用户
★★
朦胧的世界
积分 579
发帖 218
注册 2006-10-24 04:29
19年会员
UID 67972
状态 离线
用CD 或者 \nul 也可以判断.
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
namejm +8 2006-12-29 08:19

认识自己,降伏自己,改变自己
,才能改变别人!
7 发表于 2006-12-29 08:21 ·  中国 广东 电信
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
Originally posted by tao0610 at 2006-12-28 18:51:
用CD 或者 \nul 也可以判断.

  用 \nul 来判断确实是个超级技巧,呵呵,加分。

  CD 虽然也可以,但是考虑到代码的简洁性,pushd 和 popd 组合更有优势。
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
8 发表于 2006-12-29 08:30 ·  中国 河南 许昌 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
俺一直用 \nul 判断文件夹^_^
9 发表于 2010-03-21 07:05 ·  中国 上海 浦东新区 电信
新手上路
积分 13
发帖 12
注册 2010-03-02 23:29
16年会员
UID 161477
性别 男
状态 离线
@for /f "tokens=1,2,3 delims=- " %%a in ('date /t') do set dated=%%a-%%b-%%c
@IF NOT EXIST "%dated%" md %dated%
论坛跳转: