标题: [文件操作] 批处理怎样根据文件路径筛选复制(Joomla文件整理)? [打印本页]
作者: tuding 时间: 2011-6-27 18:33 标题: 批处理怎样根据文件路径筛选复制(Joomla文件整理)?
- E:\htdocs\j15\components\com_wrapper\index.html
- E:\htdocs\j15\components\com_wrapper\metadata.xml
- E:\htdocs\j15\components\com_wrapper\router.php
- E:\htdocs\j15\components\com_wrapper\wrapper.php
- E:\htdocs\j15\components\com_wrapper\wrapper.xml
- E:\htdocs\j15\components\com_wrapper\views\index.html
- E:\htdocs\j15\components\com_wrapper\views\wrapper\index.html
- E:\htdocs\j15\components\com_wrapper\views\wrapper\metadata.xml
- E:\htdocs\j15\components\com_wrapper\views\wrapper\view.php
- E:\htdocs\j15\components\com_wrapper\views\wrapper\tmpl\default.php
- E:\htdocs\j15\components\com_wrapper\views\wrapper\tmpl\default.xml
- E:\htdocs\j15\components\com_wrapper\views\wrapper\tmpl\index.html
以上是用- dir /b /s /O:N /A:A > list.txt
复制代码
产生的一系列文件列表,是Joomla内容管理系统的j15/components文件夹中的一部分,而有用的文件是路径中含有“……\views\……\tmpl\”的,类似上面粗体的那部分。
(Joomla内容管理系统,只有文件路径是“……\views\……\tmpl\”的可以决定前台输出,而这些文件可以在模板文件夹重建优先输出,但是重建的树状结构与上面粗体显示的相比略有变化)
筛选出的文件路径需要重新组织,即复制到新位置的文件的路径中没有“……\views\……\tmpl\”的“views”和“tmpl”和这个文件夹结构
- E:\htdocs\new\components\com_wrapper\wrapper\default.php
- E:\htdocs\new\components\com_wrapper\wrapper\default.xml
- E:\htdocs\new\components\com_wrapper\wrapper\index.html
我只会写简单的bat,在筛选的这个地方卡住了,无法进行下去,请各位老鸟指教!
作者: batman 时间: 2011-6-28 09:12
就题解题吧:- @echo off&setlocal enabledelayedexpansion
- for /f "delims=" %%a in ('findstr "views.*tmpl" list.txt') do (
- set "str=%%a"&set "str=!str:\j15\=\new\!"
- set "str=!str:\views\=\!"
- echo !str:\tmpl\=\!
- )
- pause>nul
复制代码
作者: batman 时间: 2011-6-28 09:18
本帖最后由 batman 于 2011-6-28 09:21 编辑
完整的:- @echo off&setlocal enabledelayedexpansion
- for /f "delims=" %%a in ('dir /a-d /b /s^|findstr "views.*tmpl"') do (
- set "str=%%~dpa"&set "str=!str:\j15\=\new\!"
- set "str=!str:\views\=\!"
- copy /y "%%a" "!str:\tmpl\=\!"
- )
复制代码
作者: tuding 时间: 2011-7-5 06:50
谢谢batman!set的内容输出没有问题,但是copy时会提醒路径错误,可能因为是文件对文件的拷贝。用xcopy可以复制成功,但要反复处理提示
作者: tuding 时间: 2011-7-11 12:41
- @echo off&setlocal enabledelayedexpansion
- dir E:\htdocs\j15\components /b /s /O:N /A:D > com_list.txt
- for /f "delims=" %%a in ('findstr "views.*tmpl" com_list.txt') do (
- set "str=%%a"&set "str=!str:\j15\=\new\!"
- set "str=!str:\views\=\!"
- echo %%a
- echo !str:\tmpl\=\!
- xcopy %%a !str:\tmpl=\! /E /I
- )
- dir E:\htdocs\j15\modules /b /s /O:N /A:D > mod_list.txt
- for /f "delims=" %%a in ('findstr "*tmpl" mod_list.txt') do (
- set "str=%%a"&set "str=!str:\j15\=\new\!"
- echo %%a
- echo !str:\tmpl\=\!
- xcopy %%a !str:\tmpl=\! /E /I
- )
- pause>nul
复制代码
谢谢batman!经修改,问题解决了,不过我写得有点啰嗦了
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |