0

我第一次尝试使用 Windows 批处理自动创建一些目录。

我有看起来像这样的文件:

app=application
proj=project
file=file1.txt
file2.txt
file3.txt
app=application2
proj=project2
file=file1.txt
file2.txt
file3.txt

我想读取文件,以便对于每个应用程序和项目组合,我想创建一些目录并复制文件。

这样最后我有这样的事情:

  • C:\应用程序\项目\file1.txt
  • C:\应用程序\项目\file2.txt
  • C:\应用程序\项目\file3.txt
  • C:\application2\project\file1.txt
  • C:\application2\project\file2.txt
  • C:\application2\project\file3.txt 等等..

如果我能以正确的顺序读取属性文件的内容,我想我可以弄清楚如何创建目录。

我试过这个,但我没有得到预期的结果:

@echo off
For /F "tokens=1,* delims== " %%A IN (tempForBatch.txt) DO (
IF "%%A"=="app"  set app=%%B
    echo "App is %app%"

IF "%%A"=="proj" set proj=%%B
    echo "Proj is %proj%"


IF "%%A"=="file"  set file=%%B
echo "File is %file%"
)

但我得到了这个:“应用程序是应用程序”“项目是项目”“文件是 file1.txt”“应用程序是应用程序”“项目是项目”“文件是 file1.txt”“应用程序是应用程序”“项目是项目” “文件是 file1.txt” “App 是应用程序” “Proj 是项目” “文件是 file1.txt” “App 是应用程序” “Proj 是项目” “文件是 file1.txt”

知道如何实现这一目标吗?

感谢您提前抽出时间。

4

1 回答 1

2
@ECHO OFF &SETLOCAL
FOR /f "tokens=1*delims==" %%a IN (tempForBatch.txt) DO (
    IF /i "%%a"=="app" (
        SET "app=%%b"
    ) ELSE (
        IF /i "%%a"=="proj" (
            SET "proj=%%b"
        ) ELSE (
            IF /i "%%a"=="file" (
                SET "file=%%b"
            ) ELSE (
                SET "file=%%a"
            )
            SETLOCAL ENABLEDELAYEDEXPANSION
            ECHO "\!app!\!proj!\!file!"
            ENDLOCAL
        )
    )
)

“\应用程序\项目\file1.txt”
“\应用程序\项目\file2.txt”
“\应用程序\项目\file3.txt”
"\application2\project2\file1.txt"
"\application2\project2\file2.txt"
"\application2\project2\file3.txt"
于 2013-08-27T18:12:49.503 回答