batch-file - 批量等待,直到 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"
对于任何不正确的语法或令人困惑的单词,我深表歉意。我已尽我最大的努力用英语编写一个可以理解的文本。
解决方案
推荐阅读
- django - Django Graphene - 将 info.context 传递给 Query 或 Mutation 的装饰器
- python - pandas 序列的唯一 ID
- json - 抓取 AJAX 生成的表格以批量下载 PDF
- bokeh - Bokeh Sphinx 扩展——如何包含来自 CSV 文件的数据?
- kiwi-tcms - 调用 TestRun.update() 时出现 xmlrpc.client.Fault
- java - 回文测试器难度
- java - 使用 sdk 对 AWS S3 存储桶中的对象进行计数时计数不正确
- java - 高效地从 Firebase 数据库获取用户数据
- openssl - 如何使用 openssl 以文本形式从 CA 打印证书
- kalman-filter - 扩展卡尔曼滤波器协方差收敛过快