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"
    )
  • 相关阅读:
    第五章课后练习题
    第四章课后练习
    函数
    变量、常量及类型
    go环境搭建及编辑器安装
    Matplotlib(绘图和可视化)
    Pandas例题(以NBA球队为例)
    Pandas
    Numpy
    jupyter notebook编辑器的用法
  • 原文地址:https://www.cnblogs.com/nlsoft/p/9333738.html
Copyright © 2011-2022 走看看