标题: [文件操作] 批处理怎把文件夹内文件移到上一层? [打印本页]
作者: suixuewy8 时间: 2010-10-13 11:01 标题: 批处理怎把文件夹内文件移到上一层?
将大量文件夹内文件移到上一层,如何实现?
所有文件夹内格式都是
d:a\b\c.jpg
a,b,c为任意长度的字符
我现在需要将b这级文件夹去除
也就是要变成a\c.jpg
在网上找到一个批处理可是不能用 麻烦帮忙看看如何修改- @echo off
- for /f "delims=" %%i in ('dir/b/s/a-d') do (
- for /f "tokens=3 delims=\" %%a in ("%%i") do move "%%i" "%%a"
- )
- for /f "tokens=*" %%a in ('dir/ad/b/s^|sort /r') do rd/q "%%a"
- pause
复制代码
我试了下只能用a,b,c,这三个字母命名的文件夹才可以用这个批处理,换成别的名字的文件夹就不行了
十分感谢各位帮忙!谢谢!
版主的在我这不能用!不知道是为什么
可能是我说的不太清楚!
4楼同学实现的功能是对的 但还差点。不是我想要的结果!
未标题-1.jpg (36.45 KB)
2010-10-14 16:16
我想要用BAT文件实现绿色的文件层级上移一层。其实顶楼我发的那个BAT就可以实现,但对文件夹名有要求必须是“A”。主要想解决这个问题。
作者: edmond 时间: 2010-10-13 12:43
- @echo off
- cd /d d:\a\b\
- move "*.jpg" d:\a\
- cd /d d:\a\
- rd b
- pause
复制代码
作者: 随风 时间: 2010-10-13 16:15
- @echo off
- for %%a in ("a\b\*.jpg") do (
- move "%%a" "a\"
- rd "a\b"
- )
- pause
复制代码
作者: hfg1977 时间: 2010-10-13 16:19
- for /f "tokens=* delims=" %%i in ('dir/b/s/a/og') do (move "%%i" "%%~dpi.\..\")
复制代码
会将该bat所在的所有文件,目录移动到上一级文件夹,包括bat自身.
作者: leap 时间: 2010-10-14 11:20
- xcopy /y "d:\a\b\*.*" "d:\a\"
- rd /s /q "d:\a\b\"
- exit
复制代码
- for /f "delims=" %%i in ('dir/s/b d:\a\b\') do (move "%%i"
- "d:\a\")
- rd "d:\a\b"
复制代码
[ 本帖最后由 leap 于 2010-10-14 11:28 编辑 ]
作者: suixuewy8 时间: 2010-10-14 15:46
十分感谢各位帮忙!谢谢!
版主的在我这不能用!不知道是为什么
可能是我说的不太清楚!
4楼同学实现的功能是对的 但还差点。不是我想要的结果!
我想要用BAT文件实现绿色的文件层级上移一层。其实顶楼我发的那个BAT就可以实现,但对文件夹名有要求必须是“A”。主要想解决这个问题。
作者: suixuewy8 时间: 2010-10-14 16:00
谢谢各位帮忙!万分感谢!
作者: Batcher 时间: 2010-10-14 20:56 标题: 回复 6楼 的帖子
能否把所有的要求都更新到顶楼?
作者: powerbat 时间: 2010-10-14 23:13 标题: 回复 6楼 的帖子
把你代码中的for /f "tokens=3 delims=\" %%a in ("%%i") do move "%%i" "%%a"
改成 for /f "tokens=1,2 delims=\" %%a in ("%%i") do move "%%i" "%%a\%%b"
4楼的代码也可,要加上删掉不要的文件夹。
作者: 随风 时间: 2010-10-14 23:55
楼主的要求应该是把bat所在的第二级文件夹下的文件上移一层。而不是把bat所在文件夹下的所有文件都上移一层吧?
作者: 随风 时间: 2010-10-15 00:17
- @echo off
- set "lj=%cd%"
- for /d %%i in (*) do (
- cd/d %%i
- set "wkejj="
- for /d %%j in (*) do (
- for %%k in ("%%j\*") do move "%lj%\%%i\%%k" "%lj%\%%i\%%~nxk"
- set "kwjj=%lj%\%%i\%%j"
- )
- setlocal enabledelayedexpansion
- if defined kwjj rd "!kwjj!"
- endlocal
- cd..
- )
- pause
复制代码
作者: netbenton 时间: 2010-10-15 06:51
- @echo off
- ::把批处理文件 所在 目录下的 孙目录 移到 子目录
- for /d %%a in (*) do (
- pushd "%%a"
- rem 进入子目录,并把当前目录压栈
-
- for /d %%b in (*) do (move /y "%%b\*.*"&rd "%%b")
- rem 移动指定目录下的所有文件到当前目录
-
- popd
- rem 返回刚才压栈的目录
- )
复制代码
[ 本帖最后由 netbenton 于 2010-10-15 06:52 编辑 ]
作者: suixuewy8 时间: 2010-10-15 08:32 标题: 回复 8楼 的帖子
已经修改了 6楼的删除不了 请帮忙 谢谢
作者: suixuewy8 时间: 2010-10-15 08:37 标题: 回复 11楼 的帖子
测试了下在我机器上这个东西没反反映 只提示我 按任意键继续
作者: vincent0202 时间: 2011-1-5 23:36
如何实现
bat所在的第二级文件夹下的文件和文件夹上移一层
上面给出的代码都只是移动文件的
我要把文件和文件夹都移上一层
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |