首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在传递的变量中包含空格的Doskey宏?

在传递的变量中包含空格的Doskey宏?
EN

Stack Overflow用户
提问于 2013-02-03 07:59:34
回答 2查看 4.2K关注 0票数 6

我正在创建一些常用的doskey命令,我经常使用这些命令。我正在尝试在doskey宏中有多个变量,有时一个变量中会有空格。我试着引用变量的值,但不起作用。唯一有效的方法就是在宏字符串的末尾添加更多的变量。

我想做的是: doskey keycmd=plink -l user -pw -batch $1 -batch $2然后执行它,如下所示: c:> keycmd hostname "dir /p /users“

doskey在执行时看到的是:$1=hostname、$2="dir“和"dir”不是命令,/p和/users被完全删除。

为了让它工作,我必须这样定义它: doskey keycmd=plink -l user -pw password $1 -batch $2 $3 $4并执行如下命令: c:> keycmd hostname dir /p /users

有没有办法将"dir /p /users“分组到一个$2变量中?对于doskey变量参数,你只能得到9,$1..$9。最终我可能会在复杂的命令上耗尽。我尝试了单引号和双引号,但在Windows cmd命令中,avail...but的单引号和/或双引号似乎在其他地方都不起作用。

有没有解决这个问题的办法,或者我只是想用doskey做太多的事情?

EN

回答 2

Stack Overflow用户

发布于 2013-09-30 02:47:45

这个应该可以了。告诉最后一个var就是其他所有东西

代码语言:javascript
复制
keycmd=echo plink -l user -pw password $1 -batch $*
票数 5
EN

Stack Overflow用户

发布于 2014-10-06 15:16:19

虽然在最后一个参数中可能有空格(在wild2010answer中使用$* ),但通常不可能在命令中包含带有空格的参数。

请参阅Using Doskey

遗憾的是,尽管参数可以是长文件名,但它不能包含空格,即使用反逗号括起来也是如此。

如果文件名包含空格,则需要**。我知道没有解决这个问题的办法**。

DosKey宏也可以使用被称为“全局可替换参数”的$*

这必须是宏的最后一部分,并替换为命令行上不是宏名称或指定给编号参数的任何内容。

如果将上面的示例重写为:

代码语言:javascript
复制
DOSKEY D2F=DIR $1 $g $*

然后,可以使用带有空格的长文件名作为最后一个参数-但是用作$1替代的路径名仍然不能包含带有空格的目录名。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14667922

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档