【问题标题】:using alias parameters in window command prompt在窗口命令提示符中使用别名参数
【发布时间】:2010-12-15 20:57:06
【问题描述】:

来源: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 & 目录 & popd

别名 def 不起作用

---------编辑------------ 让我用一个简单的 echo 别名尝试一些示例输出

D:\abc\def>别名/?

用法: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:\Office\dev15>别名

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

out             =echo %1

C:\Office\dev15>输出 abc

%1

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

%1 * 无法读取别名的值 *

C:\Office\dev15>输出 abc

ECHO 已开启。

问题是, 单引号和反引号都会产生错误, 而双引号不会将 %1 视为可变参数 也试过没有引号。 还是不行

【问题讨论】:

    标签: cmd dos alias command-prompt


    【解决方案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' 更短并且节省了击键次数!

    【讨论】:

    • 这是我复制并粘贴命令后的输出 D:\>alias dtxt = pushd %1 & dir %2$ & popd 驱动器 D 中的卷是新卷卷序列号是 D:\ 找不到文件的目录'popd `' 不是内部或外部命令、可运行程序或批处理文件。
    • freshWoWer,你在什么操作系统上运行这个?另外,你在使用“Take Command”吗? - 如果有,是什么版本?
    猜你喜欢
    • 2012-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-30
    相关资源
    最近更新 更多