删除并替换变量 [英] Delete and replace variables

查看:125
本文介绍了删除并替换变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

让我们说,我们有4个变量,如:

 组VAR1 =您好
集VAR2 =某些文本
集VAR3 =一些文字
集VAR4 =甚至一些文字

和然后提示用户删除其中的一个,在这种情况下,(1-4),如:

 设定/ p delete_one =删除了一句:

如果用户写道:例如2的新的变量是:

  VAR1 =你好
VAR2 =一些文字
VAR3 =偶数一些文字

我将如何使这项工作?


解决方案

 关闭@echo
SETLOCAL EnableDelayedExpansion设置VAR1 =您好
集VAR2 =某些文本
集VAR3 =一些文字
集VAR4 =甚至一些文字SET VAR集/ p delete_one =删除了一句:设置XVAR =
FOR / F令牌= 1,2 delims ==%%一中(设置VAR')做(
   如果定义XVAR(
      集!XVAR!= %% B
      设置XVAR = %%一个
   )否则,如果%%一个EQUVAR%delete_one%(
      设置XVAR = %%一个
   )

集%XVAR%=SET VAR

您必须检查删除变量给定数量的存在。需要注意的是变量是按字母顺序排序,因此,如果超过9个变量存在,并且要preserve其自然秩序,变量低于10必须​​有一个左零: var01 =您好,你必须给这个左零值来删除该变量。

Lets say that we have 4 variables like:

set var1=Hello
set var2=Some text
set var3=Some more text
set var4=Even some more text

And then prompted to the user to delete one of them, in this case (1-4) like:

set /p delete_one="Delete one:"

And if the user wrote for example "2" the new variables would be:

var1=Hello
var2=Some more text
var3=Even some more text 

How would i make this work?

解决方案

@echo off
setlocal EnableDelayedExpansion

set var1=Hello
set var2=Some text
set var3=Some more text
set var4=Even some more text

SET VAR

set /p delete_one="Delete one: "

set "Xvar="
for /F "tokens=1,2 delims==" %%a in ('set var') do (
   if defined Xvar (
      set "!Xvar!=%%b"
      set "Xvar=%%a"
   ) else if "%%a" equ "var%delete_one%" (
      set "Xvar=%%a"
   )
)
set "%Xvar%="

SET VAR

You must check that the given number of variable to delete exists. Note that variables are sorted alphabetically, so if more than 9 variables exists, and you want to preserve its "natural order", variables less than 10 must have a left zero: var01=Hello and you have to give this left-zero value to delete that variable.

这篇关于删除并替换变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆