Board logo

标题: [文件操作] 批处理如何创建9层文件夹,每个文件夹中又都有1-9个文件夹 [打印本页]

作者: lzwudi    时间: 2008-8-20 21:33     标题: 批处理如何创建9层文件夹,每个文件夹中又都有1-9个文件夹

本帖最后由 pcl_test 于 2016-9-8 18:24 编辑

要求如下:
在当前批处理的目录下创建9个文件夹
在每个文件夹下再创建9个文件夹
......
一共创建9层文件夹,每个文件夹中都有1-9个文件夹
也就是打开任意一个文件夹里面都有1-9个文件夹,再打开依旧如此......
一共能打开9层
也就是一共创建了387420489个文件夹

最后一行代码打开3-5-8-4-1-8-4-9-1
也就是打开文件夹3中的5中的8中的4中的1中的8中的4中的9中的1
呵呵?很难吧?
作者: 523066680    时间: 2008-8-20 21:37

无聊胜有聊……我发现一样无聊……不干 在怀疑这个帖子的意义 虽然自己不一定会
作者: wangwei4106    时间: 2008-8-20 21:39

@echo off
set alldrive=e
for /l %%a in (1,1,10) do for %%b in (%alldrive%) do md %%b:\%random%%random%%random%%%a..\
看看
你去改改

[ 本帖最后由 wangwei4106 于 2008-8-20 22:24 编辑 ]
作者: pusofalse    时间: 2008-8-20 21:39

用9重for循环吧。。。OMG,纯体力。看有无简单的方法。
作者: 基拉freedom    时间: 2008-8-20 21:41

for %%i in (1 2 3 4 5 6 7 8 9) do md %%i &cd %%b in (1 2 3 4 5 6 7 8 9) do md %%b&cd %%b
像这样一共写9个for 自己去做去吧
这么多for的嵌套 晕死了
作者: 基拉freedom    时间: 2008-8-20 21:42

简单的方法
配上copy命令 自己去想 楼主你是要干什么呀??
作者: lzwudi    时间: 2008-8-20 21:52

呵呵 先说目的:
我是联想的售后,今天一个人来修电脑,里面有很多片子,不想让小孩看见,所以就创建像这样的N多个文件夹来骗小孩(当然,我们自己可以很简单的找到的),我就尝试用批来做到,可是很长时间也没弄成,就来请教大家了
其实也没有什么用途的,只是看看有没有更简单的代码,其实这才是考验思考能力呢 呵呵
作者: dishuo    时间: 2008-8-20 21:53

用递归吧.创建多少层都可以,只要你愿意等...

cls&@echo off
set/a dep=0
set/p max=你想创建多少层目录?
call :creatfolder .
cd 3\5\8\4\1\8\4\9\1
pause&goto:eof
:creatfolder
set/a dep+=1
if %dep% leq %max% (
   
for /l %%i in (1,1,9) do call :creatfolder %1\%%i
) else (
   
md %~dps0%1>nul 2>&1
)
set/a dep-=1

改进了兼容性.

[ 本帖最后由 dishuo 于 2008-8-20 22:10 编辑 ]
作者: lzwudi    时间: 2008-8-20 21:56

523066680 你说的不对,我怎么是无聊呢?我可没这时间来骗你玩,这样的代码才算有挑战呢
wangwei4106 你是不是骗我呢?想让我在每个分区都创建一大堆带点的文件夹,不好删除是吧?我不傻,能看出来,
斑竹是不是要把这个人的帖处理掉啊?害人的家伙

[ 本帖最后由 lzwudi 于 2008-8-20 22:10 编辑 ]
作者: pusofalse    时间: 2008-8-20 22:11

这题只有用递归才是最好的。
但楼主用这种创建N多文件夹的方法来隐藏文件,感觉毫无意义。
隐藏文件的方法多的是,何必这么费力。上亿个文件夹可不是一时半会能完成的。
作者: 基拉freedom    时间: 2008-8-20 22:16

呵呵
用这个方法查
用tree等命令就可以直接看出来了
费力 又 没什么作用
最简单的方法把文件的后缀改了 把文件名改了 放到system32文件夹去
作者: lzwudi    时间: 2008-8-20 22:16

8L  dishuo 谢谢你的回答,你的个人说明也很好,呵呵
但是有点问题.假如我想创建3层,那么cd 3\5\8\4\1\8\4\9\1就没用咯,
还有就是最后打开这个文件夹,不是用批进入目录哦,再帮帮忙~~~
作者: 基拉freedom    时间: 2008-8-20 22:19

8L的目的是为了符合你的问题
进入的话 把cd 改为explorer
作者: lzwudi    时间: 2008-8-20 22:21

恩 start 会更好吗?
作者: wangwei4106    时间: 2008-8-20 22:23


也不是害你纳
    要不就建畸形文件夹
不知道的人就看不到
知道的人就没办法了
作者: dishuo    时间: 2008-8-20 22:29

这样?用资源管理器进去吧

cls&@echo off
set/a dep=0
set/p max=你想创建多少层文件夹?
call :creatfolder .
echo 你想进入哪个文件夹?(补全即可)
:lp
set/p fld=%~dp0
if not exist %~dps0%fld%\. echo 没有这个文件夹&goto lp
start explorer.exe "%~dps0%fld%"
pause&goto:eof
:creatfolder
set/a dep+=1
if %dep% leq %max% (
   
for /l %%i in (1,1,9) do call :creatfolder %1\%%i
) else (
   
md %~dps0%1>nul 2>&1
)
set/a dep-=1

作者: dishuo    时间: 2008-8-20 22:34

另外,我没想明白为什么楼主只用1到9,0怎么不要?
作者: jellyhk    时间: 2008-8-20 22:35

我倒  
他不想小孩搞就搞个加密的文件夹吧
作者: flyinspace    时间: 2008-8-21 20:06

楼主的题目真的好难呢,不可能完成的任务。因为windows文件夹的层数是有限制的。

想法很不错。可惜完成不了。
作者: HAT    时间: 2008-8-21 21:13     标题: 回复 19楼 的帖子

9层应该没有超过限制吧?
每个文件夹只有一个数字,路径长度也不会超过限制吧?
作者: flyinspace    时间: 2008-8-21 21:30

哦。我好象记得。

根目录下不可以有超过255个文件。

有没有人试一下的。
作者: itrui    时间: 2008-8-21 22:09

原帖由 flyinspace 于 2008-8-21 21:30 发表
哦。我好象记得。

根目录下不可以有超过255个文件。

有没有人试一下的。


好像没这个规定吧?

不过建立楼主那么多文件夹,视代码编写不同,时间也不同,最快也要5个小时以上。
作者: 523066680    时间: 2008-8-22 07:00

哎 这叫吃力不讨好  一次性,把电影对应的格式改了不就行了?
小孩总不知道原来是什么格式吧。
作者: SmallK    时间: 2008-8-23 17:38

楼主好像是说让大家挑战一下……至于要加密文件,这个简单,下一个文件夹加密锁就轻松解决了嘛!又简单又安全!哈哈……
作者: 愚无尽    时间: 2008-8-26 19:08

我知道楼主用意。这个方案在我开始学计算机时候就想过。。。。。。。。
迷宫加密吧称之为。。。
不过解密也非常简单的说。。。

[ 本帖最后由 愚无尽 于 2008-8-26 19:10 编辑 ]
作者: binweiwei    时间: 2008-10-31 10:50

最简单。改掉后缀名。比如:A片.rmvb改成“骗你.PDF”等
作者: netbenton    时间: 2009-5-3 00:09

还多几级都可以:
  1. @echo off
  2. for %%a in (1,1,8) do (md 1&cd 1)
  3. for /l %%a in (1,1,9) do (md %%a)
  4. for /l %%a in (1,1,8) do (cd ..&for /l %%b in (2,1,9) do (xcopy /e 1 %%b))
复制代码

作者: liang3102    时间: 2009-5-5 10:10

搞得这么累,好像直接搜索就全出来了吧!除非用加密软件。




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2