Board logo

标题: [文件操作] 批处理如何将最底层子文件夹下的文件移动到上层文件夹? [打印本页]

作者: SandraRusso    时间: 2015-3-3 14:30     标题: 批处理如何将最底层子文件夹下的文件移动到上层文件夹?

如何实现将某文件夹下的子文件夹的中的图片移动到上层文件夹?再次感谢!
作者: pcl_test    时间: 2015-3-3 14:36

本帖最后由 pcl_test 于 2015-3-3 14:37 编辑

回复 1# SandraRusso
参考,测试前先备份原文件
http://www.bathome.net/thread-34504-1-1.html
作者: SandraRusso    时间: 2015-3-3 14:45

回复 2# pcl_test


    'dir /b /ad /s^|sort /r'为什么报错呢?无法运行!
作者: pcl_test    时间: 2015-3-3 15:03

回复 3# SandraRusso

这不是你系统一直以来的问题吗?简单点避免用dir
  1. move *.jpg .\..
复制代码

作者: SandraRusso    时间: 2015-3-3 15:08

回复 4# pcl_test


    还是您了解我呀!您能帮我完善下整体代码么?感谢了
作者: SandraRusso    时间: 2015-3-3 15:11

回复 4# pcl_test


    主要是如果将move处理文件一个一个放到根目录下运行有点繁琐呀!
作者: SandraRusso    时间: 2015-3-3 15:16

回复 4# pcl_test


    现在当前需要处理的文件夹内有10多个子文件夹,子文件夹下包含图片文件!如果放在这10多个子文件夹下如何修改代码呢?
作者: pcl_test    时间: 2015-3-3 15:17

本帖最后由 pcl_test 于 2015-3-3 15:30 编辑

回复 6# SandraRusso
需要子文件夹的路径列表就可以,这样可以避免用dir,也就是
  1. move "子文件完整路径\*.jpg" "子文件完整路径.\.."
复制代码

作者: SandraRusso    时间: 2015-3-3 15:22

回复 8# pcl_test


    您可以给我示范一个列子不?我对这个不太懂,谢谢您!
作者: pcl_test    时间: 2015-3-3 15:24

本帖最后由 pcl_test 于 2015-3-3 15:31 编辑

回复 9# SandraRusso
  1. ::移动D:\1\2\3文件夹里的jpg图片到D:\1\2
  2. move "D:\1\2\3\*.jpg" "D:\1\2\3\.\.."
  3. ::或
  4. move "D:\1\2\3\*.jpg" "D:\1\2\"
复制代码

作者: SandraRusso    时间: 2015-3-3 15:31

回复 10# pcl_test


    不过现在我这有个问题是比如像您举的例子3子文件夹下还包含10个不同的文件夹(10个文件夹名字不同),想将这最后这10个文件夹下的图片移动到和这10个文件夹一级的目录,要怎么写呢?给您添麻烦啦!
作者: pcl_test    时间: 2015-3-3 15:35

回复 11# SandraRusso
10个文件夹一级的目录,什么意思?移到D:\1\吗?
作者: SandraRusso    时间: 2015-3-3 15:43

回复 12# pcl_test


    就是移动到D:1\2\3\下,然后3文件夹下的10个空文件夹就没什用了!
作者: SandraRusso    时间: 2015-3-3 15:56

回复 12# pcl_test


    您理解我的意思了没?
作者: pcl_test    时间: 2015-3-3 16:03

本帖最后由 pcl_test 于 2015-3-3 17:15 编辑

回复 14# SandraRusso
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /r "D:\1\2\3\" %%a in (.) do (
  4. set "fdir=%%a"
  5. set "fdir=!fdir:~,-1!"
  6. echo !fdir!
  7. if not "!fdir!" == "D:\1\2\3\" (
  8. move /y "!fdir!*.jpg" "!fdir!.\.."
  9. rem rd "!fdir!" /q
  10. )
  11. )
  12. pause
复制代码

作者: SandraRusso    时间: 2015-3-3 16:25

回复 15# pcl_test


    还得麻烦您帮我写下代码哈!多谢多谢!您多受累啦
作者: SandraRusso    时间: 2015-3-3 16:47

回复 15# pcl_test


    拜托您啦!
作者: SandraRusso    时间: 2015-3-5 14:44

回复 15# pcl_test


    成功啦!太感谢您了,不过我系统一直存在的那个问题您能帮我在想想如何在通过别的渠道方法解决呢?http://www.bathome.net/thread-34241-3-9.html
作者: SandraRusso    时间: 2015-3-5 15:09

回复 15# pcl_test


    那个问题您一定要帮帮我呀!我真的特别需要这个功能,拜托您了!感谢!再次感谢!
作者: SandraRusso    时间: 2015-3-5 15:28

回复 15# pcl_test


    您看看是不是这个原因呢 ?
在我的电脑——属性——高级——环境变量进去后有个 系统变量里面有个PATH
你 双击一下 进去后 在最后加 “;”再加 %SystemRoot%\system32
注意:
分号 是要英文的哈,其他的别乱改,那些都是 你的软件运行的路径就在后面加上那个 就可以了 ....
作者: DAIC    时间: 2015-3-5 15:32

回复 20# SandraRusso


    把PATH变量的完整内容复制出来,我帮你看看
作者: SandraRusso    时间: 2015-3-5 16:06

回复 21# DAIC


    非常感谢您呀!系统变量完整内容C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\;D:\软件\Windows7Master
主要是只要一运行带有dir /ad /b的时候会提示不是内部或外部命令呢?是不是和系统变量有关系呢?我的公司电脑预装了双系统,一个XP一个是W7!您要帮帮我哈!用不了这个功能很郁闷呀!谢谢啦!
作者: DAIC    时间: 2015-3-5 16:59

回复 22# SandraRusso


    XP和Win7都有这个问题是吗
作者: SandraRusso    时间: 2015-3-6 13:04

回复 23# DAIC


    虽然是双系统但是XP的用不了,我通常都是习惯进W7的,不晓得到底是怎么回事!哎~
作者: DAIC    时间: 2015-3-6 17:21

回复 24# SandraRusso


1、到XP的C:\windows\system32目录下面看看有没有dir可执行文件,正常来说是没有的
2、打开一个CMD窗口,手工依次执行命令:
dir
dir /?
dir /ad
dir /b
dir /ad /b
结果发出来看看
作者: SandraRusso    时间: 2015-3-9 15:00

回复 25# DAIC


    我在W7里面运行这几个命令的结果见附件!您看看有什么问题吗?另外如果我在W7系统下如何查看您所说的目录下dir的可执行文件呢?
作者: DAIC    时间: 2015-3-9 18:24

回复 26# SandraRusso


    你不是说XP系统有问题吗?看W7的结果没用!
作者: SandraRusso    时间: 2015-3-10 20:37

回复 27# DAIC


    不好意思!是我表达的有误,W7的用不了,虽然是双系统,但是我通常不用XP系统(上次的帖子写错了)




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2