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

[文件操作] [已解决]批处理判断文件夹下是否只有一个文件并把文件移到上一目录并删除空文件夹

本帖最后由 279491611 于 2017-8-8 21:54 编辑

求助 批处理判断文件夹下是否只有一个文件并把文件移到上一目录并删除空文件夹,如果多于一个文件或有子目录的则不做任何处理。
例如: d:\test\  目录下有很多文件夹,这些文件夹里有的只有一个文件,有的是空文件夹,有的有多个文件,还有有可能有子目录。
比如 d:\test\ A   是空文件夹,d:\test\B  里面只有一个文件   d:\test\ C里面有多个文件。
现在想要变成 d:\test\  只有B文件夹里面的文件和C文件夹及其里面的文件。
1

评分人数

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

  1. @echo off & setlocal enabledelayedexpansion
  2. REM pushd c:\测试目录
  3. for /d %%i in (*) do (
  4. set n=%%~dpni
  5. for /f "usebackq tokens=* delims=" %%a in (`dir /a-d /b /s "%%i"`) do (
  6. set /a s+=1
  7. set m=%%a
  8. )
  9. if !s! equ 1 (
  10. move "!m!" "!n!\.."
  11. rd "!n!"
  12. )
  13. set s=0
  14. pause
  15. )
复制代码
1

评分人数

TOP

回复 2# zhanglei1371


    谢谢帮助,果然管用。

TOP

本帖最后由 Nsqs 于 2017-8-8 23:20 编辑

回复 3# 279491611
  1. powershell -c "dir -Dir|foreach{if([System.IO.Directory]::GetFiles($_.FullName).Count -eq 1){Move-Item -Force ($_.FullName+'\*.*') '.';Remove-Item -Recurse -Path $_.FullName}}"
复制代码
一行
1

评分人数

TOP

返回列表