将文件添加到 2 个特定大小之间的文件夹中的档案中

Posted

技术标签:

【中文标题】将文件添加到 2 个特定大小之间的文件夹中的档案中【英文标题】:Add a file to archives in a folder between 2 specific sizes 【发布时间】:2014-03-16 17:08:21 【问题描述】:

我正在尝试将 information.txt 添加到文件夹中 11534336 字节到 22020095 字节之间的所有 .rar 文件中。我在下面编写了代码,但它将文本文件添加到文件夹中的所有 rar 文件中。我不确定脚本有什么问题。

@REM ------- BEGIN mod.bat ----------------
@setlocal
@echo off
set path="C:\Program Files\WinRAR\";%path%
for /F %%I in ('dir /b *.rar') do (
    IF 11534336 LEQ %%~zI IF %%~zI LEQ 22020095 do ( 
        rar a -m0 %%I "information.txt"
     )
)
REM ------- END mod.bat ------------------

【问题讨论】:

【参考方案1】:
IF 11534336 LEQ %%~zI IF %%~zI LEQ 22020095 do ( 
                    The problem is here ----^^ 

IF 命令不包括do 子句作为for 命令。你正在执行的相当于

for /F %%I in ('dir /b *.rar') do (
    IF 11534336 LEQ %%~zI IF %%~zI LEQ 22020095 do 
    ( 
        rar a -m0 %%I "information.txt"
    )
)

即对所有文件执行rar命令,对符合条件的文件调用do命令,可能不存在。

【讨论】:

【参考方案2】:

你的文件名可以有空格吗?如果是这样,那么这一行:

for /F %%I in ('dir /b *.rar') do (

应该这样写:

for /F "delims=" %%I in ('dir /b *.rar') do (

但是,在这种情况下,for /F 是不需要的(这确实是问题的原因),所以我建议您改用被遗忘的普通 for 命令:

for %%I in (*.rar) do (

【讨论】:

【参考方案3】:

取消你的如果。

IF 11534336 LEQ %%~zI IF %%~zI LEQ 22020095 ( 

虽然

IF %%~zI GEQ 11534336 IF %%~zI LEQ 22020095 (

可能更直观 - 但同样的事情。

(如果你提到你遇到了什么错误,那就容易多了)

【讨论】:

以上是关于将文件添加到 2 个特定大小之间的文件夹中的档案中的主要内容,如果未能解决你的问题,请参考以下文章

将facebook像素添加到prestashop中的特定页面

如何保存具有特定文件大小的图像?

Python 2.6 不喜欢附加到 zip 文件中的现有档案

将档案上传到 iTunes Connect 时出错

有人可以解释这个从档案中提取特定文件的批处理代码吗

如何将2个文本文件合并到一个文件中?