欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Windows命令行中, 类似于linux的history命令

程序员文章站 2024-01-18 13:50:58
...

在写这篇博客的时候: ImageMagick: 图像处理工具包(使用它在图片中插入文字注释)

我在windows的命令行中, 利用了ImageMagick的命令行工具, 进行了多种尝试.

因为不同的参数会产生不同的效果, 所以我想记录下来我使用过的命令, 以及他们的参数(这些参数好长好长...).

 

于是我随手键入了history,

发现得到的回答是"history 不是内部或外部命令,也不是可运行的程序或批处理文件。"

 

用了这么久的windows,

仿佛这是我第一次想把history保存下来呢?

也许是因为以前使用的那些命令的参数都不够复杂,

也许是对于一些复杂的应用, 我都会封装成单独的脚本

 

总之这次感觉很强烈, 于是, 经过调查, 在这个链接:Display Command History , 发现正解如下:

显示history的命令:

DOSKEY /history

 

如果这个命令不好用, 使用下面命令重新安装DOSKEY

DOSKEY /reinstall

 

 

 

顺便详细看了一下DOSKEY这个命令,

原来这个命令是可以在命令行中定义宏的.

msdn的连接如下(在这个连接中, 我还知道了Alt+F7这个快捷键, 虽然没有F7更令人高兴, 但也算实用):

Doskey #MSDN

 

下面这个连接有一些不同的例子

DOSKEY and Command Macros #The Windows NT Command Shell

 

参照上面的连接, 我们可以这样使用DOSKEY(关于下面命令的详细解析,参考上面两个连接)

定义ls命令
C:\>doskey ls=dir $*

 

The following macro definition creates a command that displays the user name of the currently logged-on user:
1. C:\>doskey myname=for /f "delims=\ tokens=2" %i in ('whoami') do @echo %i
2. C:\>myname
3. TimHill
 
This example creates a DIRCOUNT macro that counts the number of directories in a specified directory
C:\>doskey dircount=dir $* $B find "<DIR>" /c
 
Macros can be used with any Windows NT application which accepts line-by-line command input. However, each macro is explicitly defined for a specific application. By default, macros are defined for use by the command shell, CMD.EXE. The /EXENAME switch defines a macro for another application. For example, to define an EXIT macro for use with FTP, enter:
C:\>doskey /exename=ftp.exe exit=bye
 

对于上面的命令, 我更喜欢使用gunwin32,或者自己编写脚本来实现,

但是既然看到这里了便记录下来, 说不定将来什么时候能用上.

 

 

 

顺着这次调查, 我还来到了这里:

How To Use Automatic Completion with a Command Prompt in Windows XP

在这里知道了如何在cmd命令行中, 自动补全文件名(以及,文件夹名)

 

 

 

我以前写的一些关于windows命令行的博客:

扩展Windows命令行窗口(cmd),支持复制粘贴等操作

Windows命令行窗口中的快捷键
Windows: 也谈“触手可及的命令提示符”