找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 37188|回复: 12

[系统相关] 批处理for不能正常抓取doskey/history的输出?

[复制链接]
发表于 2010-8-31 20:12:07 | 显示全部楼层 |阅读模式

  1. cd&doskey/history
  2. for /f "delims=" %a in ('doskey/history')do @echo %a
复制代码


为何输出为空?

想强调一下,请大家直接在cmd命令行下做代码测试

[ 本帖最后由 plp626 于 2010-8-31 21:50 编辑 ]
 楼主| 发表于 2010-8-31 20:17:52 | 显示全部楼层
哦,我知道了,for /f 在抓去外部输出时是重新启动cmd,此时执行doskey/history是在非当前cmd环境下执行的,由于新环境下doskey/history 输出为空所以抓住的输出为空

大家觉得呢?
 楼主| 发表于 2010-8-31 20:20:47 | 显示全部楼层
那现在我想问大家,在不生临时文件的情况下怎么用for 抓去doskey/history 的输出?
发表于 2010-8-31 21:01:34 | 显示全部楼层
不能吧?
刚刚试了一下不加 @echo off
只两行:
doskey /history
pause
除了pause,什么输出都没有。
然后  在批处理脚本中使用doskey也是无效的, 那么doskey /history怎么会有意义呢
 楼主| 发表于 2010-8-31 21:46:37 | 显示全部楼层
原帖由 523066680 于 2010-8-31 21:01 发表
不能吧?
刚刚试了一下不加 @echo off
只两行:
doskey /history
pause
除了pause,什么输出都没有。
然后  在批处理脚本中使用doskey也是无效的, 那么doskey /history怎么会有意义呢


你直接双击批处理当然不会有cmd下的“history”
当你在cmd下使用了一些命令后,然后你可以运行这个保存了doskey/history的脚本,来判断你做的某些事情,用处还是蛮大的
发表于 2010-8-31 21:49:49 | 显示全部楼层

回复 4楼 的帖子

没看到LZ用的是%a而非%%a吗?

doskey /h | for /f "delims=" %a in ('findstr .*') do @echo %a
好像有时候得不到输出

评分

参与人数 3PB +13 技术 +1 收起 理由
Hello123World + 5 管道符还能用在for上!
zm900612 + 1 有新意
plp626 + 8 for /f 这种用法第一次看到,很实用。感谢分 ...

查看全部评分

发表于 2010-9-1 08:56:04 | 显示全部楼层
灌个水,果然是老手……
发表于 2011-4-19 16:51:12 | 显示全部楼层
doskey只能用在命令提示符中,不能用在批处理中吗?
发表于 2011-4-26 21:01:55 | 显示全部楼层
牛A啊
这都能打出来
发表于 2011-6-19 14:47:40 | 显示全部楼层
2个月前的自己傻的怪天真的……
发表于 2011-6-20 12:37:30 | 显示全部楼层
6# zqz0012005


管道符的前后实际是一条语句,先运行后面的命令,并打开input管道,然后运行前面的。
因此环境仍然是for启动后的新环境。
发表于 2011-6-20 13:57:25 | 显示全部楼层
11# caruko

管道的input如果是语块,将会启动新的cmd,但是如果只是语句,仍然在当前cmd中执行
发表于 2011-6-20 14:01:27 | 显示全部楼层
有意思,我原来也以为doskey是个全局变量
今天试了下有以下发现:
  1. set "bbb=你真厉害啊"
  2. pause
  3. @echo off
  4. set b=12
  5. echo %b%
  6. set /p p=
  7. pause
  8. doskey/history
  9. pause>nul
复制代码
从结果可以看出:
第一doskey只对当前CMD有效
第二doskey对批处理的任何命令都不做记录
第三doskey只对输入性语句有效
可以看出,doskey并不是命令行的记录者,而是输入记录,如果没有输入就没有记录
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 07:36 , Processed in 0.020719 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表