【问题标题】:concatenate strings using batch script使用批处理脚本连接字符串
【发布时间】:2016-08-03 14:21:21
【问题描述】:

我正在从批处理文件中读取一些字符串并尝试将它们全部附加,用空格分隔。这是代码

for /F %%x in (C:\dir_1\deploy_build\apps.properties) do (
            set warFiles=%%x%warFiles%
        )
echo %warFiles%

如果属性文件的内容是

sz1056
warFile1
warFile2

我得到的输出是warFile2 但我期待的输出是sz1056 warFile1 warFile2 我该怎么做?

【问题讨论】:

  • 这里需要延迟变量替换,否则%%x%warFiles% 使用x 的当前值和warFiles 的旧(循环开始之前)值

标签: windows batch-file scripting


【解决方案1】:

你需要delayed expansion:

setlocal enableDelayedExpansion
for /F %%x in (C:\dir_1\deploy_build\apps.properties) do (
            set "warFiles=%%x !warFiles!"
        )
echo %warFiles%

【讨论】:

  • 它工作但我还没有得到预期的输出,这是我得到的输出warFile2 warFile1 sz1056 warFile2warFile2
  • @viveksinghggits 现在是问题吗?
  • 我的错,输出正确但顺序不正确。我期待sz1056 warFile1 warFile2 但得到warFile2 warFile1 sz1056 作为输出。
  • @viveksinghggits 因为我使用了你的逻辑。将设置行更改为set "warFiles=!warFiles! %%x"
猜你喜欢
  • 1970-01-01
  • 2013-05-07
  • 2013-02-15
  • 1970-01-01
  • 1970-01-01
  • 2014-06-14
  • 1970-01-01
  • 1970-01-01
  • 2014-02-15
相关资源
最近更新 更多