zoukankan      html  css  js  c++  java
  • 批处理 星号的替换

    批处理中通常替换方法是 set var=%var:A=B%

    但是星号是这样替换不起作用的

    set var=%var:*=X%   <----- 出错 此时不应有 =%

    set var=%var:^*=X%  <------ 这样星号还是没有替换

    set var=%var:**=X%   <------ 这样只替换第一个星号 第二个星号还是没有替换 并且丢失第一个星号左边的字符串

    :: Replace all asterisk characters in a variable
    
    :: Usage:
    :: set-ast <variable-name> <replacement-value>
    
    @echo off
    @setlocal enabledelayedexpansion
    
    set variable=%~1
    set value=!%~1!
    set replacement=%~2
    
    :loopback
      set righthand=!value:**=!
    
      if ["%value%"]==["%righthand%"] (goto quit)
    
      if ["%righthand%"]==[""] (
        set lefthand=%value:~,-1%
      ) else (
        set lefthand=!value:%righthand%=!
        set lefthand=!lefthand:~0,-1!
      )
    
      set value=%lefthand%%replacement%%righthand%
      goto loopback
    
    :quit
    for /f "delims=" %%v in ("!value!") do (
      endlocal
      set "%variable%=%%v"
    )
  • 相关阅读:
    android焦点
    URI和URL的区别比较与理解
    Android Bundle类
    repo命令
    ubuntu adb找不到设备
    【python】-网络编程
    【python】-反射
    【python】-类的特殊成员方法
    【python】-7-面向对象的进阶
    【python】-多态
  • 原文地址:https://www.cnblogs.com/nlsoft/p/9333738.html
Copyright © 2011-2022 走看看