首页 > 代码库 > cocos2d-x教程3:用php或DOS批处理命令来转换文件和解压缩zip

cocos2d-x教程3:用php或DOS批处理命令来转换文件和解压缩zip

在cocos2d-x使用中,需要不停的转换文件和压缩或解压文件,如果全人工来做,太麻烦了,且容易出错。我现在把一些用的到批处理贴出来,供大家使用

  • 自动把dat文件按数字排序重命名gz,DOS批处理
  • @echo off&setlocal EnableDelayedExpansion
    color 0a
    echo %date% %time%
    echo 正在批量重命名文件......
    set a=1
    for /f "delims=" %%i in (‘dir /b *.dat‘) do (
        if not "%%~ni" == "%~n0" (
            if !a! LSS 10 (ren "%%i" "0!a!.gz")else (ren "%%i" "!a!.gz")
            set /a a+=1
        )
    )
    set /a a-=1
    echo 重命名完成,共重命名%a%个文件。
    pause
  • php解压zip.配置php.ini 要使用该PHP扩展类,需要(PHP 5 >= 5.2.0, PECL zip >= 1.1.0),部分方法需要 PHP 5.2.+,且php.ini配置支持zip
    对于win系统,直接去掉php_zip.dll 扩展的注释,然后重启http服务(IIS或Apache)即可
  • $zip = new ZipArchive;
    $res = $zip->open(‘AM.ZIP‘);
    if ($res === TRUE) {
        echo ‘ok‘;
        //解压缩到test文件夹
        $zip->extractTo(‘AM‘);
        $zip->close();
    } else {
        echo ‘failed, code:‘ . $res;
    }
  • php循环重命名
  • $s=explode("\n",trim(`dir/b d:\\tmp\\`));//获取该路径下所有文件名
    //print_r($s);
    foreach($s as $rs)
    {
        $name=explode(".",$rs);
        $file_name=$name[0];//获取要创建的文件夹名字
        //mkdir("E:/11-2/caps/$file_name");//创建文件夹
        rename(‘d:/tmp/‘.$rs,"d:/tmp/$file_name".".gz");//移动并重命名文件

    }
  • php循环自解压
  • $s=explode("\n",trim(`dir/b d:\\tmp\\`));//获取该路径下所有文件名
    //print_r($s);
    foreach($s as $rs)
    {
        $name=explode(".",$rs);
        $file_name=$name[0];//获取要创建的文件夹名字
        //mkdir("E:/11-2/caps/$file_name");//创建文件夹
        rename(‘d:/tmp/‘.$rs,"d:/tmp/$file_name".".gz");//移动并重命名文件
        //
        $zip = new ZipArchive;
        $tmpFile=$file_name.".gz";
        $res = $zip->open($tmpFile);
        if ($res === TRUE) {
            echo ‘ok‘;
            //解压缩到test文件夹
            $zip->extractTo($file_name);
            $zip->close();
        } else {
            echo $tmpFile.‘failed, code:‘ . $res."<br>";
        }

    }
  • php循环读取目录,然后自动解压
  • $s=explode("\n",trim(`dir/b d:\\tmp\\`));//获取该路径下所有文件名
    //print_r($s);
    foreach($s as $rs)
    {
        $name=explode(".",$rs);
        $file_name=$name[0];//获取要创建的文件夹名字
        //mkdir("E:/11-2/caps/$file_name");//创建文件夹
        rename(‘d:/tmp/‘.$rs,"d:/tmp/$file_name".".gz");//移动并重命名文件
        //
        $zip = new ZipArchive;
        $tmpFile=$file_name.".gz";
        $res = $zip->open($tmpFile);
        if ($res === TRUE) {
            echo ‘ok‘;
            //解压缩到test文件夹
            $zip->extractTo($file_name);
            $zip->close();
        } else {
            echo $tmpFile.‘failed, code:‘ . $res."<br>";
        }

    }
  • 把一个文件拷贝到同名文件夹下的另外一个文件。例如effect01.png 拷贝到effect01目录下的sheet.png
  • <?php

                $fnum = 0;
                $path="d://wamp/www/my/";##路径
                $handle = @ opendir($path) or die("无法打开目录");
                $arr=array();##定义保存存在的文件
                $imgs=array("1.jpg","11.jpg");//测试假使匹配这2个文件
                if($handle){
                        while (false !== ($file = readdir($handle))){//存在文件
                                if($file != ‘.‘ && $file != ‘..‘){##不为..
                                        //$img=substr($file,strripos($file,".")+1);//判断后缀名
                                        //if($img=="pvr"){                                      
                                           $v=$file.".png";
                                           $newname="$file/sheet.png";
                                           if(rename($v,$newname))
                                            {
                                              echo ‘成功将‘.$v.‘重命名‘.$newname.‘<br />‘;
                                            }
                                            //删除旧文件
                                            $oldFile="$file/sheet.pvr";
                                            if(unlink($oldFile)){
                                                echo "成功将".$oldFile."删除!<br />";
                                            }
                                        //}
                                        $fnum++;
                                }
                        }
                }
                closedir($handle);//关闭文件流.
    ?>