【发布时间】:2015-02-19 13:57:12
【问题描述】:
我必须创建几千个目录。 目录如下所示: 10P001 是 YEAR/P,S,L,R,F/Numberfrom001to600
这些字母不是系统的,所以我必须为每个文件夹写它们。
到目前为止,我的脚本看起来像这样,但是 cmd 不喜欢 for 循环。
@echo off
setlocal enabledelayedexpansion
set /p jahr=Welches Jahr?
set /p anzahl=Wieviele Projekte?
set looop=%anzahl+1000
for /l %%x in (1001, 1, looop) do (
set nummer=%%x
set /p welches=P1 S2 L3 R4 F5 nichtexistent6?
if %welches%==1 mkdir %jahr%P!nummer:~-3!
if %welches%==2 mkdir %jahr%S!nummer:~-3!
if %welches%==3 mkdir %jahr%L!nummer:~-3!
if %welches%==4 mkdir %jahr%R!nummer:~-3!
if %welches%==5 mkdir %jahr%F!nummer:~-3!
if %welches%==6 echo "nicht existent"
)
pause
【问题讨论】:
-
您没有在程序中使用
anzahl。它适合在哪里?您不能set块内的变量(带括号的命令序列)和使用 %var% 访问 changed 值;你必须使用setlocal enabledelayedexpansion,然后使用!var~(或!welches!在你的情况下)访问changed值 -
anzahl 尚未使用,我从代码示例中删除了它,对此感到抱歉。问题不在于 %welches%,它是有效的。问题是 for 循环不起作用并且 %%x%%
-
很难看出你在做什么。您需要在
if语句中使用!welches!,而不是%welches%,因为您要在for /L %%x...块内更改welches。您是否知道您的设置方式将为您要创建的每个(600?)条目输入响应? -
我必须为每个条目输入一个响应,因为字母 SPDFLR 不是系统的,我必须从项目手写的文件夹中读取它。我必须创建这样的文件夹:14P001 14S002 14P003 14L004 14R005 14R006 14R007 14P008 等我不熟悉 windows 命令。直到现在我进入了喜欢他的项目:mkdir 14P003 14L004 14R005 14R006 14R007 14P008 等,这需要很长时间
-
这是从手写的纸片还是从文件中读取的?如果来自文件,请发布文件样本。
标签: batch-file cmd directory