从doskey宏中删除引号(export = set)

时间:2017-08-04 23:36:31

标签: cmd doskey

我正在尝试删除doskey宏的传入引号,这将让我使用“export”作为“set”。这就是我所拥有的:

doskey export=set $*

除非我使用以下内容运行:

export VAR="value"

我最终得到了:

VAR="value"

vs我想要的:

VAR=value

我想我必须编写一些方法来“清理”要设置的输入,但我不知道该怎么做 - 比如“for(var1 = var2)do set var1 = ~var2”,但是我无法做到这一点。

帮助!

1 个答案:

答案 0 :(得分:0)

你也可以用for循环来做,但这更容易:

set ORIGARGS=%*
set ARGCOPY=
:copyargs
    set "ARGCOPY=%ARGCOPY% %~1"
    shift
    if not [%1]==[] goto:copyargs

即。 (线由线)

  1. 保存原始%*,因为我们要销毁它。
  2. 准备一个变量(ARGCOPY)以将转换后的参数放入
  3. 标签(第6行的转到目标)
  4. 将第一个参数%1附加到ARGCOPY,但删除引号(%~1
  5. shift左边一个空格的所有参数(即%2变为%1等等。)
  6. 如果我们已经到达参数的末尾,则%1没有值,否则goto第3行,:copyargs标签所在的位置。
  7. 当您完成%ARGCOPY%时,将包含没有引号的参数。