簡體   English   中英

如何在 Windows 批處理文件中連接字符串以進行循環?

[英]How to concatenate strings in windows batch file for loop?

我熟悉 Unix shell 腳本,但不熟悉 Windows 腳本。

我有一個包含 str1、str2、str3...str10 的字符串列表。 我想這樣做:

for string in string_list
do
  var = string+"xyz"
  svn co var
end

我確實找到了一些描述如何在批處理文件中連接字符串的線程。 但它以某種方式在 for 循環中不起作用。 所以我仍然對批處理語法感到困惑。

試試這個,用字符串:

set "var=string1string2string3"

並使用字符串變量:

set "var=%string1%%string2%%string3%"

批量你可以這樣做:

@echo off

setlocal EnableDelayedExpansion

set "string_list=str1 str2 str3 ... str10"

for %%s in (%string_list%) do (
  set "var=%%sxyz"
  svn co "!var!"
)

如果您不需要變量!var! 循環中的其他地方,您可以將其簡化為

@echo off

setlocal

set "string_list=str1 str2 str3 ... str10"

for %%s in (%string_list%) do svn co "%%sxyz"

但是,像 CB 一樣,如果可能的話,我更喜歡 PowerShell:

$string_list = 'str1', 'str2', 'str3', ... 'str10'

$string_list | ForEach-Object {
  $var = "${_}xyz"   # alternatively: $var = $_ + 'xyz'
  svn co $var
}

同樣,如果您在循環中的其他地方不需要$var ,這可以簡化:

$string_list = 'str1', 'str2', 'str3', ... 'str10'
$string_list | ForEach-Object { svn co "${_}xyz" }

一個非常簡單的例子:

SET a=Hello
SET b=World
SET c=%a% %b%!
echo %c%

結果應該是:

Hello World!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM