我有一个批处理文件,它使用文本文件创建文件夹。但是我想修改批处理文件,以允许拖放任何文本文件来创建文本文件包含的任何文件夹名称。
文本文件内容:
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 )已经存在。
感谢任何帮助。
答案 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 )。