将文本文件拖放到批处理文件中以创建文件夹

时间:2019-06-15 19:43:09

标签: batch-file

我有一个批处理文件,它使用文本文件创建文件夹。但是我想修改批处理文件,以允许拖放任何文本文件来创建文本文件包含的任何文件夹名称。

文本文件内容:

Folder1
Folder2
Folder3

这就是我现在拥有的,可以正常工作:

@echo off

for /f "delims=" %%a in (create_folders.txt) do (

mkdir "%%a"

)

这是我将批处理文件修改为的内容(我添加了PAUSE,以便可以看到错误):

@echo off

for /f "delims=" %%a in ("%~1") do (

mkdir "%%a"

)

ECHO.

PAUSE

当我将文本文件拖到修改的批处理文件中时,这是我收到的错误:

  

子目录或文件( path_to_text_file )已经存在。

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

for /f "usebackq delims=" %%a in ("%~1") do (
    2>NUL mkdir "%%a"
)

FOR /F loop command syntax中解释:

FOR /F ["options"] %%parameter IN (filenameset) DO command 

FOR /F ["options"] %%parameter IN ("Text string to process") DO command
     

…选项:

usebackq   Use the alternate quoting style:                        
               - Use double quotes for long file names in "filenameset".
               - Use single quotes for 'Text string to process'
               - Use back quotes for `command to process`

阅读redirection以获取2>NUL的说明(将错误消息重定向到NUL )。