[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 hanyeguxing 于 2011-4-13 22:17 编辑

如果要查找“新建”的文件类型,则递归HKLM\SOFTWARE\Classes\中所有包含ShellNew子项的项
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

本帖最后由 hanyeguxing 于 2011-4-14 04:47 编辑

xp sp3 下以递归 HKLM\SOFTWARE\Classes\ 中所有包含 ShellNew 子项的项为例:
  1. @echo off&setlocal enabledelayedexpansion
  2. set "n=reg query HKLM\SOFTWARE\Classes"
  3. for /f "skip=4 tokens=2 delims=R>" %%a in ('%n%\.bat /ve') do set "m=%%a"
  4. for /f "skip=6 delims=" %%a in ('%n%') do (
  5. set "a=%%a"
  6. if not "!a:~36,1!"=="." goto:e
  7. %n%\!a:~36!\ShellNew >nul 2>nul&&for /f "skip=4 tokens=3 delims=%m%" %%b in ('%n%\!a:~36! /ve') do for /f "skip=4 tokens=3 delims=%m%" %%c in ('%n%\%%b /ve 2^>nul') do echo;!a:~36! %%c
  8. )
  9. :e
  10. echo;完成&pause
复制代码
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

本帖最后由 hanyeguxing 于 2011-4-14 09:37 编辑

6# jay_16


@echo off&setlocal enabledelayedexpansion
set "n=reg query HKLM\SOFTWARE\Classes"
for /f "skip=4 tokens=2 delims=R>" %%a in ('%n%\.bat /ve') do set "m=%%a"
提取tab制表符,因为论坛无法复制这个
for /f "skip=6 delims=" %%a in ('%n%') do (
递归HKLM\SOFTWARE\Classes下所有项名(不包括子项),skip=6使得第一项名就带.
        set "a=%%a"
        if not "!a:~36,1!"=="." goto:e
只递归项名为扩展名的,即项名第一个字符(完整项名第35个字符)为.
        %n%\!a:~36!\ShellNew >nul 2>nul&&for /f "skip=4 tokens=3 delims=%m%" %%b in ('%n%\!a:~36! /ve') do for /f "skip=4 tokens=3 delims=%m%" %%c in ('%n%\%%b /ve 2^>nul') do echo;!a:~36! %%c
检查这些项中是否有ShellNew子项,有则执行后面两个for。第一个for解析获取该扩展名对应的项名(文件类型的项名),第二个for获取该项名对应的文件类型名。这样就有了扩展名!a:~36!对应的文件类型%%c
)
:e
echo;完成&pause
运行结果示例:
.bat MS-DOS 批处理文件
.cmd Windows NT 命令脚本
.doc Microsoft Word 文档
.lnk 快捷方式
.txt 文本文档
完成
请按任意键继续. . .
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

8# slore


从 HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Discardable\PostSetup\ShellNew 查询是个简便的方法(在没有意外的情况下,因为这个键可能和别的键值对应不上)
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

返回列表