1

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

doskey export=set $*

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

export VAR="value"

我最终得到:

VAR="value"

与我想要的:

VAR=value

我想我必须编写一些方法来“清理”要设置的输入,但我不知道该怎么做——比如“for (var1=var2) do set var1=~var2”,但我可以不要让这样的事情发挥作用。

帮助!

4

1 回答 1

0

您也可以使用 for 循环来做到这一点,但这更容易:

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

IE。(逐行)

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

完成%ARGCOPY%后将包含不带引号的参数。

于 2017-08-07T06:59:03.677 回答