batch-file - 比较批处理文件中相同文件的大小
问题描述
我有 1 个任务,其中有 1 个文件开始通过 DB 生成并花费了将近 1 个小时来生成,有 1 个批处理文件在可用时检查该文件,它调用一个新的批处理文件并触发“文件发送”,问题是连续生成的这个文件没有在文件中完全生成,并且选择了相同的文件并调用批处理文件
我想要做的是建立一个逻辑,我可以将循环内的文件大小与 2 个变量 sizeA 和 sizeB 进行比较,并在 sizeA==sizeB 时调用另一个批处理文件现在唯一的问题是我不确定如何构建这个代码中的逻辑。\
这是我尝试过的:
@echo off
setlocal EnableDelayedExpansion
set file = "C:\Users\rb54761\Desktop\New folder\File.txt"
set "size=0"
pause
:loop for /f "tokens=*" %%x in ('dir /s /a /b "%file%"2^>nul') do set /a size=%%~zx
echo !size!
PAUSE
if !size! == !size! goto call
goto loop
:call echo Success
解决方案
编辑我现在只看到你的评论是一个 2gb 的文件,那么下面的代码将不起作用。
如果文件更小..这里是一个例子:
@echo off
set "myfile=C:\Users\rb54761\Desktop\New folder\File.txt"
:start
for /f %%I in ("%myfile%") do set size=%%~zI
if %size% LSS 100 (echo file not ready %size% & timeout /t 10 & goto :start)
echo copy file.
如上所述,它将检查文件的大小为 100kb,如果还没有,它将超时 10 秒并转到开头并再次测试,直到文件达到 100kb,它将不再满足 if 语句和通过那条线并简单地 echo copy file
。
请注意,我的 set 命令中没有空格。我建议您从 cmd 运行帮助for /?
以获取有关此命令的更多信息。
推荐阅读
- qt - 我的 Qt 应用程序从不全屏打开并且最大化按钮被禁用
- python - 如何复制矩阵的一部分并将其粘贴到 Python 中同一矩阵的末尾?
- php - file_get_contents 输出错误请求 PHP
- elixir - 如何使用 Pow 验证 Phoenix 套接字?
- python - 如何根据列将 numpy 数组拆分为 numpy 数组?
- python - 如何获取不同列表的相同索引并将其放入单独的列表中?
- docker - RabbitMQ pod web 用户名和密码?
- python - 如何在不丢失曲线自然对数的情况下找到值
- c++ - 无法使用地图
除非我为 Custom_Class 定义没有参数的默认构造函数 - python - Keras 中的 flow_from_directory 方法是否会调整图像的大小,即使它们已经匹配所需的大小?