楼 主
[已解决]文件关联检测的问题
发表于 2009-10-05 18:33 · 中国 江苏 无锡 电信
中级用户
★★
积分 487 发帖 212 注册 2007-04-01 08:22 UID 83597 性别 男
状态 离线
@echo off & setlocal EnableDelayedExpansion
(for %%a in (txt exe com pif reg bat cmd hlp ini inf vbs vbe js ) do (
for /f "delims== tokens=1*" %%i in ('ftype %%afile') do (
echo .%%a
)
)
) >>%temp%\4.txt
(echo .txt
echo .exe
echo .com
echo .pif
echo .reg
echo .bat
echo .cmd
echo .hlp
echo .ini
echo .inf
echo .vbs
echo .vbe
echo .js ) >>%temp%\5.txt
echo ===========================================
echo 文件关联
for /f "tokens=1*" %%a in (%temp%\5.txt) do (
set type%%a=%%b
)
for /f "tokens=1*" %%a in (%temp%\4.txt) do (
if /I not "%%b"=="!type%%a!" (
echo/%%a %%b 关联错误!
) else (echo/%%a %%b)
)>>3.txt
以上为修改后的代码,效果已经达到,感谢楼下兄弟指点!
[
Last edited by luckboy45 on 2009-10-6 at 19:53 ]
第 2 楼
发表于 2009-10-06 01:54 · 中国 吉林 延边朝鲜族自治州 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039 发帖 897 注册 2009-03-01 15:34 UID 140302 性别 男 来自 在地狱中仰望天堂
状态 离线
if not "%%b"=="!type%%a!" (
这一行的 if 比较,没有使用 /i 参数,导致比较中未忽略大小写!
第 3 楼
发表于 2009-10-06 03:15 · 中国 吉林 延边朝鲜族自治州 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039 发帖 897 注册 2009-03-01 15:34 UID 140302 性别 男 来自 在地狱中仰望天堂
状态 离线
@echo off&for /l %%i in (1 1 50) do set/p=*<nul
echo.&echo 文件关联&set X=%%SystemRoot%%\System32\&set Y=.exe "%%1"&set Z=.exe %%1
set hlp=%X%winhlp32%Z%&set reg=regedit%Y%&set vbe=%X%CScript%Y% %%*
for %%i in (exe com pif bat cmd) do set %%i="%%1" %%*
for %%i in (txt ini inf) do set %%i=%X%NOTEPAD%Z%
for %%i in (vbs js) do set %%i=%X%WScript%Y% %%*
for %%i in (txt exe com pif reg bat cmd hlp ini inf vbs vbe js) do for /f "delims== tokens=1*" %%j in ('ftype %%ifile') do setlocal enabledelayedexpansion&if /i "!%%i!"=="%%k" (echo %%i %%k) else echo %%i %%k 关联可能错误!
pause
[
Last edited by Hanyeguxing on 2009-10-6 at 13:52 ]
第 4 楼
发表于 2009-10-06 19:50 · 中国 江苏 无锡 电信
中级用户
★★
积分 487 发帖 212 注册 2007-04-01 08:22 UID 83597 性别 男
状态 离线
@echo off & setlocal EnableDelayedExpansion
(for %%a in (txt exe com pif reg bat cmd hlp ini inf vbs vbe js ) do (
for /f "delims== tokens=1*" %%i in ('ftype %%afile') do (
echo .%%a
)
)
) >>%temp%\4.txt
(echo .txt
echo .exe
echo .com
echo .pif
echo .reg
echo .bat
echo .cmd
echo .hlp
echo .ini
echo .inf
echo .vbs
echo .vbe
echo .js ) >>%temp%\5.txt
echo ===========================================
echo 文件关联
for /f "tokens=1*" %%a in (%temp%\5.txt) do (
set type%%a=%%b
)
for /f "tokens=1*" %%a in (%temp%\4.txt) do (
if /i not "%%b"=="!type%%a!" (
echo/%%a %%b 关联错误!
) else (echo/%%a %%b)
)>>3.txt
感谢兄弟指点,代码如上,确实过滤成功了!看样子得多学习下基本命令啊
论坛跳转:
— 请选择 —
站务公告 & 版主讨论
意见反馈 & 网友交流
DOS学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正