-1

我想使用命令批处理来创建列表文件夹。

但是文件夹名称中包含符号字符,不知道怎么用cmd批处理

例如:我想创建列表文件夹

01.DOCUMENT
02.SOURCE
03.DESIGN
04.TEST
05.REPORT
06....

输入:输入根目录(strfolder)

然后示例使用: mkdir %strfolder%\ (+ name folder 01.Ducment,...) 但我不知道使用

我当前的代码:

@echo off
cls
set /p folderName=Enter project name:%=%
@echo %folderName%

SET mypath=%~dp0
rem echo %mypath:~0,-1%

set folder=%mypath%%folderName%


if exist %folder% (
    echo "Folder already exists"
) else (
    mkdir %folder%
    rem mkdir %folder%\%1 %RELEASE% --> this line don't know how :D
    echo %folder%\%^1%
)

pause
4

1 回答 1

6

如果它包含符号,您需要引用您的目标:

mkdir "%folder%"

md与 相同mkdir

另外: mkdir "%folder%" 2>nul

将创建目录;2>nul抑制错误消息。

%release%不知从何而来。你不说它是什么或它来自哪里;那你REM不管怎样。不知道那里发生了什么。

现在,如果您的目录名称在文件中,那么

for /f "delims=" %%i in (filename.txt) do echo %%i

应该告诉你名字。如果您想使用这些名称创建子目录,那么

for /f "delims=" %%i in (filename.txt) do echo MD "%folder%\%%i"

应该为你做这件事——好吧,ECHO命令会吗?删除ECHO关键字以实际创建目录。

请注意,几乎任何角色都会很高兴,只要它保留在%%i用作循环控制的元变量中。一些不常用的字符可能会在普通的 %variable% 中出现问题。

如果您的数据包含括号,那么解析器可能会混淆括号是命令的一部分还是数据的一部分。如果是这种情况,最好避免带括号的构造。

于 2013-11-14T04:31:04.090 回答