在窗口命令提示符中使用别名参数

时间:2010-12-15 20:57:06

标签: cmd dos alias command-prompt

来源:HTTP://jpsoft.com/help/index.htm alias.htm

  

别名可以使用命令行   参数或参数如   批处理文件。命令行   参数编号从%0到   %511。 (%0包含别名。)

     
    
      

例如,以下别名将       更改目录,执行命令,       并返回原始目录:

    
  
     

pushd %1 & %2$ & popd

中的别名

当我运行上述操作时,我的命令提示符会出错

%1 *无法读取别名* 的值 '%2'未被识别为内部或外部命令, 可操作程序或批处理文件。 'popd`'不被识别为内部或外部命令, 可操作程序或批处理文件。

如果您使用双引号,则在“pushd%1& dir& popd”中使用别名 执行别名

时,它不会解释%1

C:\ ABC \ DEF>别名 转储CMD.EXE的所有已定义别名。     in = pushd%1& dir& POPD

别名def不会工作

--------- EDIT ------------ 让我尝试一些带有简单回声别名的样本输出

D:\ abc \ def> alias /?

用法:ALIAS [-v] [-p programName] [-f filespec] []

         [-v] means verbose output.

         [-d] means delete aliases.

         [-p programName] specifies which image file name these alias

                          definitions are for.  Default is CMD.EXE

         [-f filespec] specifies a file which contains the alises.

C:\ Office \ dev15>别名'echo%1'

%1' *无法读取别名*

的值
  

C:\ Office \ dev15> alias out backtick echo%1 backtick

%1` *无法读取别名*

的值

C:\ Office \ dev15>别名“echo%1”

C:\办公室\ dev15>别名

转储CMD.EXE的所有已定义别名。

out             =echo %1

C:\ Office \ dev15> out abc

1%

C:\ Office \ dev15> alias out echo%1

%1 *无法读取别名*

的值

C:\ Office \ dev15> out abc

ECHO已开启。

问题是, 单引号和反向标记都会产生错误, 而双引号不会将%1视为可变参数 也试过没有引号。 仍然无法运作

1 个答案:

答案 0 :(得分:1)

好的,试试这个(使用复制和粘贴):

   alias dtxt = `pushd %1 & dir %2$ & popd`

这会将别名“ dtxt ”设置为以下命令:

   pushd %1
   dir %2
   popd

特别注意别名定义周围的倒置单引号(`)。这可以在ISO(英国)和ANSI(美国)键盘的左上角找到。

执行 dtxt 时,您需要提供两个参数%1 %2 - 目标路径名和参数DIR命令如以下示例所示:

   dtxt c:\temp *.txt

简而言之, PUSHD 将当前工作目录名称推送到LIFO堆栈并将目录更改为 c:\ temp。

然后 DIR 命令以%2 作为参数执行 - 在本例中为'* .txt '。

最后, POPD 通过将其从堆栈中弹出来恢复以前的工作目录。

仅供参考,这相当于以下标准DOS命令:

   dir c:\temp\*.txt

标准DOS中的以下命令也可以正常工作:

   pushd & dir *.txt & popd

但显然,“ dtxt ”更短,可以节省击键次数!