【发布时间】:2021-06-24 07:57:14
【问题描述】:
我有一个folder structure 并想“合并”这些文件夹。 我的意思是:如果 b\ *\ 中存在一个文件夹,并且包含 p\ *\ 中的文件夹编号,则将文件夹从 b 移动到 p。
例如将b\p 11 - 20\11_abc 移动到p\p_11_20\11
我目前有:
@Echo off
SETLOCAL ENABLEDELAYEDEXPANSION
cd /d "%~dp0"
for /f %%a IN ('dir /b "%~dp0\p\"') do (
set "tmp=Y"
for /f %%b IN ('dir /b "%~dp0\p\%%a\"') do if defined tmp (
echo %%b
)
set "tmp="
)
它为我提供了数字(例如 11、12、13、21、22、23) 现在我需要一种方法来找出 b\ *\ ... 中是否存在具有该前导数字的文件夹。如果是,则需要将其移动到相应的 p\ *\ ... 文件夹
【问题讨论】:
-
你应该从
cmd看robocopy /? -
@Gerhard 感谢您的推荐。今天在工作时,我接近优化这个程序。我使用 2 个嵌套的 for 循环将 \b\ 文件夹的所有路径写到 .txt 文件中。然后我遍历所有 \p\ 文件并搜索匹配的数字是否在 .txt 中。这要快得多,但我被困在移动部分。我早上在额外的试驾中测试了这个程序,它工作正常。当我下午运行该程序时,它在移动部分(尝试了 xcopy、move、robocopy)不起作用,因为我考虑到安全原因。明天我会进一步研究。
标签: batch-file directory