标题: [文件操作] 批处理怎样从多级目录下把文件移动到新创建的文件夹? [打印本页]
作者: kmustwxw 时间: 2014-12-19 23:03 标题: 批处理怎样从多级目录下把文件移动到新创建的文件夹?
问题描述:现在有许多两级目录,XYZ文件夹里有A、B、C、……几个文件夹,A文件夹里有A001、A002、A003、A004、……B文件夹里有B001、B002、B003、B004……、C文件夹里有C001、C002、C003、C004、……等等,A001、A002、A003、A004、……B001、B002、B003、B004……C001、C002、C003、C004、……这个级别的文件夹里都有一个名为:地籍调查表.jpg 的文件,现在要创建一个文件夹,名字为:表格图片 的文件夹,并要把这个 地籍调查表.jpg 文件移动到创建的文件夹里面。举个例子:图片所的在目录就为:XYZ\A\A001\表格图片\地籍调查表.jpg 如何写代码?谢谢。
作者: apang 时间: 2014-12-20 14:49
本帖最后由 apang 于 2014-12-20 14:59 编辑
- @echo off
- pushd "D:\XYZ\"
- for /f "delims=" %%a in ('dir /b /s 地籍调查表.jpg?') do (
- md "%%~dpa表格图片" 2>nul
- move "%%a" "%%~dpa表格图片\"
- )
复制代码
作者: kmustwxw 时间: 2014-12-20 16:35
回复 2# apang 特别感谢你的回答,可以解决问题,我想加一句判断,如果存在文件夹 表格图片 就和不用建立文件夹和移动图片了,应该怎么写?我试了下,老是不运行写的那段代码。
作者: DAIC 时间: 2014-12-20 17:52
回复 3# kmustwxw - @echo off
- pushd "D:\XYZ\"
- for /f "delims=" %%a in ('dir /b /s 地籍调查表.jpg?') do (
- if not exist "%%~dpa表格图片\"(
- md "%%~dpa表格图片"
- move "%%a" "%%~dpa表格图片\"
- )
- )
复制代码
作者: kmustwxw 时间: 2014-12-20 19:32
回复 4# DAIC 谢谢你的回答,我运行了下,还是会新建一个文件夹,并把图片移动到里面,每运行一次就会把目录加深一级。
作者: apang 时间: 2014-12-20 21:00
这样试:- @echo off
- set "srcDir=D:\XYZ"
- set "re=%srcDir:\=\\%\\[^\\]*\\[^\\]*$"
- pushd "%srcDir%\"
- for /f "delims=" %%a in ('dir /ad/b/s^|findstr /irc:"%re%"') do (
- md "%%a\表格图片"
- move "%%a\地籍调查表.jpg" "%%a\表格图片"
- ) 2>nul
- pause
复制代码
- @echo off
- pushd "D:\XYZ\"
- for /f "delims=" %%a in ('dir /b /s 地籍调查表.jpg?') do (
- for %%b in ("%%~dpa.") do (
- if "%%~nxb" NEQ "表格图片" (
- md "%%~dpa表格图片"
- move "%%a" "%%~dpa表格图片\"
- )
- )
- ) 2>nul
- pause
复制代码
作者: kmustwxw 时间: 2014-12-20 21:22
这回可以了,太厉害了。谢谢你们
作者: kmustwxw 时间: 2014-12-20 22:00
回复 6# apang 请apang解释下你写的代码的意思好不?我刚学习没有多久,你写的有些我还是看的不是太懂,谢谢。如下:for %%b in ("%%~dpa.") do (
echo %%~nxb
if "%%~nxb" NEQ
这段中的几次扩展,别的地方没有看到过,麻烦解释下,我们好学习下
作者: DAIC 时间: 2014-12-21 16:56
回复 8# kmustwxw
看看教程:
http://bbs.bathome.net/thread-31727-1-1.html
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |