[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] [已解决]批处理将当前目录及其所有子目录中的文件移动到各自的子目录中

将当前目录及其所有子目录中的文件移动到各自的子目录中
文件是放在二级目录里面,里面只有一个文件夹,需要把里面的文件都移动到这个文件夹里面
看哪位大佬指点一二 :handshake :handshake

目前我只有这个代码,只是当前目录的,需要二级目录的
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. REM 查找当前目录下的第一个文件夹
  4. for /d %%D in (*) do (
  5.     set "firstFolder=%%D"
  6.     goto :FoundFirstFolder
  7. )
  8. :FoundFirstFolder
  9. REM 检查是否找到了文件夹
  10. if not defined firstFolder (
  11.     echo 没有找到任何文件夹,无法移动文件。
  12.     pause
  13.     exit /b
  14. )
  15. REM 移动当前目录下的所有文件(不包括子目录)到第一个找到的文件夹
  16. for %%F in (*) do (
  17.     if not "%%~dF"=="%CD%" move "%%F" "%firstFolder%\" >nul
  18. )
  19. echo 文件移动完成。
  20. pause
复制代码
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

一个大的文件夹,表面有许多文件夹,这些文件夹内有文件
然后移入这多个文件夹的,最底层的那个文件夹
ps-(这个大文件可以保证是没有文件的,只有里面的文件夹有文件)

TOP

怕说的不够清楚,麻烦看下
一个大的文件夹,表面有许多文件夹,这些文件夹内有文件
然后移入这多个文件夹的,最底层的那个文件夹
ps-(这个大文件可以保证是没有文件的,只有里面的文件夹有文件)

TOP

本帖最后由 zhengzhenhui 于 2024-4-27 13:55 编辑

图床

TOP

用ai写的但是用不了
将当前目录及其所有子目录中的文件移动到各自的子目录中:
[
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. REM 获取当前目录
  4. cd /d %~dp0
  5. REM 遍历当前目录下的所有子目录
  6. for %%d in (*) do (
  7.     REM 如果子目录存在,则进入该子目录
  8.     if exist "%%d" (
  9.         cd "%%d"
  10.         REM 在当前子目录下遍历所有文件
  11.         for %%f in (*) do (
  12.             REM 检查文件所在的位置是否为当前子目录
  13.             if not "%%~dpf"=="%CD%\" (
  14.                 REM 如果文件不在当前子目录下,则将其移动到当前子目录中
  15.                 move "%%f" "."
  16.             )
  17.         )
  18.         REM 返回上级目录
  19.         cd ..
  20.     )
  21. )
  22. echo 所有文件已移动完成。
  23. pause
复制代码

TOP

回复 7# 77七


    太感谢你了,如果是移动最底层的文件夹,该如何写

TOP

回复 11# 77七


    将当前目录下每个子目录中的文件移动到该最底层的子目录下

TOP

回复 10# Batcher


    已纠正

TOP

回复 14# terse


    这段代码刚刚试过了,文件只能处于二级子目录里面,才能移动到最底层。
如果保护底下目录的所有文件,都往底层文件夹放,改如何写

TOP

回复 16# terse


    谢谢可以用的

TOP

返回列表