首页 > 解决方案 > 批量等待,直到 Windows 10 复制完成

问题描述

我编写了一个批处理程序来以某种方式重命名文件。("Test" -> "year-month-day-test-person 缩写")

为了让工作日更轻松,我想让整个事情对用户来说尽可能简单。

所以我的想法是,用户只需将带有 ctrl+x 的文件复制到剪贴板,然后通过任务栏激活快捷方式。现在打开一个普通文件夹,并通过启动 VBS 脚本 (ctrl+V) 将文件插入此文件夹。

现在我有一个问题,我无法确定 windows 需要多长时间将文件移动到目录中,因为它不是通过批量“复制”而是通过 ctrl+X 和 ctrl+V 执行的。

我试图从资源管理器进程中获取信息,但这不起作用。

我什至尝试从 CPU 使用情况中获取信息,但这也非常困难。

目标是简单地将文件从未知目录复制到可以重命名的目录。

我附上我的小脚本作为解释。

我已经尝试通过计算文件来解决这个问题。但是,传输单个文件可能需要超过 1 秒的时间,这会使系统无效。

@Echo Off >nul
setlocal EnableDelayedExpansion >nul
chcp 65001 >nul



set Kuerzel=fb

del /q "Temp\"

start "" "Temp"
timeout /t 1
start "" "data\strg+v.vbs"



::wait until all files are there
:loobt

    set dateien1=0
    for /F %%i in ('dir Temp\* /B /A-d') do set /A dateien1=dateien1+1

    timeout /t 1

    set dateien2=0
    for /F %%i in ('dir Temp\* /B /A-d') do set /A dateien2=dateien2+1

if not %dateien1% == %dateien2% goto loobt
if %dateien1% == 0 goto loobt



::rename

for /r "Temp\" %%i in (*.*) do (
    set "neu=%%~ni"
    ren "%%i" "%date:~6%-%date:~3,2%-%date:~0,2%-!neu:_=-!-%Kuerzel%%%~xi"
)

timeout /t 2

start "" "data\strg+a.vbs"
start "" "data\strg+c.vbs"
timeout /t 1
start "" "data\alt+F4.vbs"

对于任何不正确的语法或令人困惑的单词,我深表歉意。我已尽我最大的努力用英语编写一个可以理解的文本。

标签: batch-file

解决方案


推荐阅读