只要父文件夹中不存在文件,就将所有文件从“旧”文件夹移到父文件夹中

泽维奥斯

只要父文件夹中不存在文件,我的代码就应该将所有文件从“旧”文件夹移到父文件夹中。

└───Folder
    ├───1
    │   └───old
    │           somefiles
    ├───2
    │   └───old
    │           somefiles
    └───3
        └───old
                somefiles

└───Folder
    ├───1
    │   │   somefiles
    │   └───old
    ├───2
    │   │   somefiles
    │   └───old
    └───3
        │   somefiles
        └───old

到目前为止,我的代码将 1 个文件移出到父级(如果那里还没有文件),然后它会停止,因为现在父级中有一个现有文件。

rem // Iterate over the changing directories:
for /D %%D in ("C:\testen\qft\*") do (
    rem // Iterate over the files to process:
    for %%F in ("%%~D\old\*.*") do (
        rem // Actually move the files one level up:
        dir /A:-D "%%~D" ||  move /Y "%%~F" "%%~dpF.."
    )
)

我试图解决这样的问题:

rem // Iterate over the changing directories:
for /D %%D in ("C:\testen\qft\*") do (
    rem // Iterate over the files to process:
    for %%F in ("%%~D\old\*.*") do (
        rem // Actually move the files one level up:
    dir /A:-D "%%~D" || set VAR="true"
    if "%VAR%" == "true" (
    move /Y "%%~F" "%%~dpF.."
    dir /A:-D "%%~F" || set VAR="false"
    )
    )
)

但是我的代码调整中一定有一些错误,因为它不再正常工作。有人可以看到我的错误吗?

aschipfl

你的尝试有两个问题:

  1. 当您在同一代码块中编写和读取变量时您需要对变量进行延迟扩展VAR如果将其更改为set "VAR=true"set "VAR="(空),则可以使用if defined VAR,它不需要延迟扩展;
  2. 不应该在内for循环中检查当前迭代目录的内容,因此如果已经有文件,则跳过此项;

这是一个可能的解决方案:

rem // Iterate over the changing directories:
for /D %%D in ("C:\testen\qft\*") do (
    rem // Check whether current directory contains files:
    dir /A:-D "%%~D\*.*" > nul 2>&1 || (
        rem // Iterate over the files to process:
        for %%F in ("%%~D\old\*.*") do (
            rem // Actually move the files one level up:
            move /Y "%%~F" "%%~dpF.."
        )
    )
)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

与所有父文件夹中创建的Java文件

将子文件夹中的所有文件移动到父文件夹

将子文件夹中的所有文件移动到父文件夹

Windows Documents文件夹中不存在的文件

如果文件夹中不存在文件,则删除文件夹 - Google Drive API

父文件夹和儿童文件夹中的多个 git 文件夹

在父目录中包括文件夹

从python中的父文件夹导入

如果文件夹不存在,则在 vbs 中创建文件夹

从 C++ 中父文件夹的父文件夹中获取文件位置

列出SQL Server父文件夹中的所有文件夹子目录

删除所有子文件夹和文件,但父文件夹中的特定扩展名除外

将包含字符串的所有文件从多个子文件夹移动到父文件夹中

Windows-如何将子文件夹中的所有文件移动到父文件夹?

htaccess - 将父文件夹重定向到父文件夹中的文件

DriveApp父文件夹

Shell脚本将所有文件从子文件夹移动到父文件夹

如果父文件夹不存在,如何写文件?

如果设置了文件夹大小,则将父目录中的所有 1 级文件夹移至子文件夹

文件在 JAR 的 target/classes 文件夹中不存在,意味着从资源项目文件夹中读取

Laravel:从子文件夹扩展父文件夹中的文件

使用父文件夹的名称重命名子文件夹中的文件

如何同步目标文件夹中存在的所有文件夹

删除文件夹中的所有文件和文件夹,以结尾的文件和文件夹为准

权限文件夹/父文件夹

复制文件夹中与单独文件夹中的文件同名的所有文件

文件夹中的RewriteRule中断了父文件(.htaccess)

将文件移动到CMD中的父文件夹

在Premake中隐藏项目文件的公共父文件夹