将文件添加到 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中的特定页面