如何用bat脚本创建多层级文件夹
如何用bat脚本创建多层级文件夹
最近突然对bat脚本感兴趣,但本身是做php开发的,网上也搜了一些资料,不过还是看不太懂,希望能有大神指点下。
虽然实现后可能没啥用,但是还是想研究下
目标
使用bat脚本实现递归创建文件夹
问题点
- 如何定义一个数据格式能让bat脚本可以按一定层级读取文件夹的层级
- 能否将第 1 点中的数据格式独立成一个文件,最好能多种语言都能识别
用PHP实现的代码
<?php
define('CURRENT_DIR',dirname(__FILE__));
$arr = [
'a'=>[
'bb'=>[
'aaa',
'bbb',
],
'cc',
],
'b'=>[
'dd',
'ee'=>[
'ccc',
'ddd'=>[
'aaaa'
]
]
]
];
function createDir($path,$mode=0777){
if(!file_exists($path)){
$status = mkdir($path,$mode,true);
if($status){
echo '创建文件夹'.$path.'成功--$status='.$status."\n";
}else{
echo '创建文件夹'.$path.'失败--$status='.$status."\n";
return false;
}
}else{
echo '文件夹'.$path.'已经存在'."\n";
}
return true;
}
function createDirMulti($arr,$path=CURRENT_DIR){
if(!is_array($arr) && strlen($path)<1){
die('请先定义要创建的文件夹结构');
}
foreach($arr as $key=>$value){
echo '$key='.$key."\n";
if(is_array($value)){
$_path = $path.DIRECTORY_SEPARATOR.$key;
echo '这个文件夹下应该还有文件:'.$_path."\n";
createDir($_path);
echo '$path='.$path.'---$_path=.'.$_path."\n";
createDirMulti($value,$_path);
}else{
$_path = $path.DIRECTORY_SEPARATOR.$value;
createDir($_path);
echo '$value='.$value.'----$path='.$path."\n";
}
}
}
createDirMulti($arr);
问题说明
- 想知道如果使用batch脚本的话,
$arr
这样的数据格式,该怎么去定义? - 如果在php中的话
$arr
我可以独立出一个test.php
文件,然后通过return [...];
的方式来读取独立出的这部分定义,不知道batch如何来实现这样的定义和读取