标题: 翔九天的叨难: for 语句综合挑战题 [打印本页]
作者: x9tiancmd 时间: 2010-7-10 19:23 标题: 翔九天的叨难: 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 编辑 ]
作者: neorobin 时间: 2010-7-10 20:04
将代码中的▲替换成 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
- pause
复制代码
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>nul
复制代码
作者: x9tiancmd 时间: 2010-7-10 20:20 标题: TO: 二楼, 评分 +5
neorobin 兄台: 您好,
您的代码 很有精练, 输出也满足, 一楼所说要求. 感谢您的作答,
但是: .( ̄▽ ̄@) 老手挑战题: 的红字, 明确的标出
" 用 reg query 一次性 将所有路径提取出来并显示出来"
意思就是说, reg query 只能是一次性将所有路径提出来, 只运行一次, 而兄台 好像是一个目录运行一次.
再次感谢您的作答. 欢迎再次参与 叨难 (#-.-)/
作者: neorobin 时间: 2010-7-10 21:20
将代码中的▲替换成 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
- )
- )
- pause
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |