4

以下のコードを使用して、コレクター テキスト ファイルの最初の 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 は変更されません。

どこが間違っていますか?

これを行うには、無限ループを期待する他の方法はありますか?

4

1 に答える 1

10

setlocal EnableDelayedExpansionの先頭に置き、!var!代わりに使用し%var%ます。その後、毎回評価されます。

于 2013-01-17T18:30:16.620 に答える