【问题标题】:how to change variable value inside loop in batch如何批量更改循环内的变量值
【发布时间】:2013-01-17 18:24:49
【问题描述】:

我使用下面的代码从收集器文本文件的前 4 个字符的值创建一个目录

@echo off & setlocal enabledelayedexpansion

:loop

set /P txt_file=<Collector.txt
Set collector_id=!txt_file:~0,4!

:: check for existence of [OutputFolder]
:: if [OutputFolder] doesn't exist, create it
if not exist %collector_id% (
  echo folder %collector_id% not found
  echo creating folder %collector_id%
  md %collector_id% 
  )

xcopy *.txt %collector_id% /v 
Del *.txt

goto loop

我想连续执行上述循环以检查当前目录是否为空。如果不是,我想创建一个目录,如果不存在,名称为 collector.txt 的前 4 个字符。

如果目录不为空,一切正常。当上述内容循环并且我将collector.txt 添加到当前目录时,collector_id 不会改变。

我哪里错了?

有没有其他方法,期待无限循环来做到这一点?

【问题讨论】:

标签: variables loops batch-file


【解决方案1】:

setlocal EnableDelayedExpansion 放在开头,并使用!var! 而不是%var%。然后每次都进行评估。

【讨论】:

  • 你已经有了EnableDelayedExpansion,我刚刚注意到,但这样我希望其他读者的答案更完整。
猜你喜欢
  • 2020-10-23
  • 2012-03-18
  • 2011-02-19
  • 1970-01-01
  • 2016-06-02
  • 2018-01-12
  • 1970-01-01
  • 1970-01-01
  • 2013-09-13
相关资源
最近更新 更多