来源:HTTP://jpsoft.com/help/index.htm alias.htm
别名可以使用命令行 参数或参数如 批处理文件。命令行 参数编号从%0到 %511。 (%0包含别名。)
例如,以下别名将 更改目录,执行命令, 并返回原始目录:
中的别名
pushd %1 & %2$ & popd
当我运行上述操作时,我的命令提示符会出错
%1 *无法读取别名* 的值 '%2'未被识别为内部或外部命令, 可操作程序或批处理文件。 'popd`'不被识别为内部或外部命令, 可操作程序或批处理文件。
如果您使用双引号,则在“pushd%1& dir& popd”中使用别名 执行别名
时,它不会解释%1C:\ 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视为可变参数 也试过没有引号。 仍然无法运作
答案 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 ”更短,可以节省击键次数!