【问题标题】:Is there a way to escape % while using call in batch file?在批处理文件中使用调用时有没有办法逃避 % ?
【发布时间】:2018-10-16 06:03:01
【问题描述】:

这是我的第一个批处理脚本。我试图转义 % char 以便不用作变量。双 %% 在使用 start 时有效,但是当我使用 %% 调用它时,输入空格和函数缺少参数。

有没有办法在使用 call 时转义 % ?

call wp rewrite structure %%postname%% << FAILED
start wp rewrite structure %%postname%% << OK

我只是想知道为什么带有“start”的相同语句会按预期工作而“call”缺少参数。两者都使用额外的 % 字符转义百分号。

【问题讨论】:

    标签: batch-file escaping call


    【解决方案1】:

    我认为您的“OK”行没有问题,因为您想要文字 %postname%,并且您认识到必须通过在批处理文件中加倍来转义百分比文字。

    如果您不将百分比加倍,则 %postname% 将扩展为环境变量 postname 的值(如果未定义,则为空字符串)。

    CALL 导致百分比被计算两次。第一轮百分比扩展将%%postname%% 转换为%postname%。这就是你想要的。但随后由 CALL 发起的第二轮导致%postname% 扩展为变量值。

    解决方法很简单,第二次将百分比翻倍:

    call wp rewrite structure %%%%postname%%%%
    

    【讨论】:

    • 好问题...也许投反对票的人只是不明白答案... :(我只是投赞成票来补偿!
    【解决方案2】:

    你试过了吗

    call wp rewrite structure %%%%postname%%%%
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-18
      • 1970-01-01
      • 2016-04-10
      • 2020-07-20
      • 1970-01-01
      • 2022-01-06
      相关资源
      最近更新 更多