返回列表 发帖

翔九天的叨难: for 语句综合挑战题

本题,适应练习人群:   新手练习,   老手挑战,   高手创新.  宗师归隐题



          新手练习题:   

                      新手利用 for 语句,  reg query  提取XP系统中,  IE流览器缓存目录路径(Cache), 历史记录路径(History), nethood 路径(nethood), (recent) 的路径


                 提示:  提取IE流览器缓存目录的键值 命令为  reg query "HKCU\software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Cache  




       老手挑战题:   
              将新手练习题IE流览器缓存目录路径(Cache), 历史记录路径(History), nethood 路径(nethood), (recent) 的路径,  用 reg query   一次性 将所有路径提取出来并显示出来

         高手创新题:

               满足 老手挑战题的要求的同时,  程序运行不得生成临时文件.

         宗师题:
                   满足 高手创新题的要求, 并且, 不得使用 setlocal enabledelayedexpansion

                   并且 只准是一条复合命令 (双for  , 三for 都行)    (显示路径可以独立写一条, 但提取路径代码只准是一条)

             归隐题:

                           写出两 个不同的批处理,  都能满足宗师题的要求

                         也就是说,把宗师题做两遍, 但两个批处理命令不得相同


                          (#-.-)/

                 
                  
      

[ 本帖最后由 x9tiancmd 于 2010-7-10 20:02 编辑 ]
    ╭╩═╮
╭╯G O ╠ 雁过留声
╰⊙═⊙╯

将代码中的▲替换成 Tab 字符
@for /f "delims=▲ tokens=1,3*" %%a in (
  'for %%i in ^(
    Cache History NetHood Recent
    ^) do @reg query "HKCU\software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"^| find /i "%%i"'
  ) do @echo %%a=%%b
pauseCOPY
PS: 运行下列代码 输入 9 获取 TAB 字符到剪贴板
@echo off
set /p code=请输入ASCII码值:
Mshta Vbscript:ClipboardData.Setdata("text",Chr(%code%))(Close)
echo %code%
echo 对应ASCII码值的字符已获取到剪贴板,任意键退出...
start notepad.exe
pause>nulCOPY
1

评分人数

    • x9tiancmd: 感谢参与 但 没完全满足 题目要求PB + 5

TOP

TO: 二楼, 评分 +5

neorobin  兄台:   您好,

                   您的代码 很有精练,  输出也满足, 一楼所说要求.       感谢您的作答,


           但是:  .( ̄▽ ̄@)  老手挑战题:   的红字, 明确的标出  

        " 用 reg query   一次性 将所有路径提取出来并显示出来"

           意思就是说, reg query   只能是一次性将所有路径提出来,  只运行一次,   而兄台 好像是一个目录运行一次.


             再次感谢您的作答.     欢迎再次参与  叨难 (#-.-)/ 
    ╭╩═╮
╭╯G O ╠ 雁过留声
╰⊙═⊙╯

TOP

将代码中的▲替换成 Tab 字符, 很无聊的做这个题
@echo off
for /f "delims=" %%l in ('reg query "HKCU\software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"') do (
  for /f "delims=▲ tokens=1-3*" %%a in ("%%l") do (
  for %%x in (%%a_%%b) do echo Cache_reg_sz NetHood_reg_sz History_reg_sz Recent_reg_sz|find /i "%%x">nul && echo %%a=%%c
  )
)
pauseCOPY

TOP

返回列表