之前看到有網友把日本兩人劇情片放在諸如“日本文化交流”、“英語四六級”等文件夾裏,或者建很多個很深的文件夾,然後放到其中一個文件夾內,一般人看到就不會想翻的。閒來無事,就寫了個批處理來實現。
此批處理可以實現每層新建指定個數的文件夾,然後每個文件夾裏再遞歸新建相同個數的文件夾,一直達到指定的層數爲止。
批處理代碼如下:
@echo off
::MAXDIR爲每層的文件夾個數,最大爲10,既:0,1,2...9
set /p MAXDIR=請輸入每位密碼選擇的個數(默認值5)(範圍:1-10):
if ""=="%MAXDIR%" set /a MAXDIR=5
if %MAXDIR% lss 1 goto :error
if %MAXDIR% gtr 10 goto :error
::MAXDEEP爲密碼的位數
set /p MAXDEEP=請輸入密碼位數(默認值5):
if ""=="%MAXDEEP%" set /a MAXDEEP=5
if %MAXDEEP% lss 1 goto :error
set /a deep=1
set /a dirCount=0
set /a MAXDEEP=MAXDEEP+1
call :calcCount
call :mdNew
echo.
echo 創建:%cd%
echo 需要創建文件夾個數:%dirCount%
echo 正在創建中,正耐心等待。。。
echo 按Ctrl+C可以中止程序
goto :circle
:end
echo 操作已完成
title 操作已完成
pause
exit
:circle
if "0"=="%deep%" goto :end
call :getMaxDirName
::得到當前目錄內最大文件夾名
if "NoDir"=="%maxDirName%" goto :maxDirName_0
goto :maxDirName_1
:maxDirName_0
set /a maxDirName=0
goto :mdDirAndCd
:maxDirName_1
set /a maxDirName=maxDirName+1
if "%MAXDIR%"=="%maxDirName%" goto:maxDeep
:mdDirAndCd
::建立文件夾並進入
md %maxDirName%
cd %maxDirName%
set /a dirCount=dirCount-1
title 剩餘-%dirCount%
set /a deep=deep+1
if "%MAXDEEP%"=="%deep%" goto :maxDeep
goto :circle
:maxDeep
rem echo>test.txt
cd..
set /a deep=deep-1
goto :circle
:getMaxDirName
set maxDirName=NoDir
for /l %%i in (9,-1,0) do if exist %%i set /a maxDirName=%%i & goto :eof
goto :eof
:mdNew
if not exist 加密文件夾 md 加密文件夾 & cd 加密文件夾 & goto :eof
for /l %%i in (0,1,9999) do if not exist 加密文件夾_%%i (md 加密文件夾_%%i & cd 加密文件夾_%%i & goto :eof)
goto :eof
:calcCount
set /a dirCount=MAXDIR
set /a temp=MAXDIR
for /l %%i in (3,1,%MAXDEEP%) do set /a dirCount=dirCount+temp*MAXDIR & set /a temp=temp*MAXDIR
goto :eof
:error
echo 輸入有誤!
pause
exit
截圖如下:
用此批處理創建了個5層、每層5個文件夾的DEMO,裏面有彩蛋哦,大家可以找找,DEMO下載鏈接:程序員尋找彩蛋
DEMO截圖如下: