想通过 winrar 定期压缩一些文件,有没有除了自己 win7 自带的计划程序外的方法呢? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
sjmcefc2
V2EX    程序员

想通过 winrar 定期压缩一些文件,有没有除了自己 win7 自带的计划程序外的方法呢?

  •  
  •   sjmcefc2 2022-10-01 10:04:40 +08:00 3776 次点击
    这是一个创建于 1148 天前的主题,其中的信息可能已经有所发展或是发生改变。

    需求:在 win7 上定期压缩文件 困难:搜索了一些材料,发现我的 win7 上都没有计划任务这个文件夹,只有计划程序,通过计划程序来调用 winrar 的快捷方式,总是无法成功。 求助:有没有 win7 上可以用的非系统自带的计划程序?可以完成我的这个备份的需求呢?

    31 条回复    2022-10-03 19:14:27 +08:00
    eason1874
        1
    eason1874  
       2022-10-01 10:40:19 +08:00
    别调用快捷方式,直接填程序路径,后面跟参数。如果你不知道程序安装在哪里,你就选择它的快捷方式在右键菜单点“属性”,在选项卡切换到“快捷方式”,目标那栏就是程序路径

    另外说一句,7zip 比 winrar 好用吧,开源免费无广告,命令行也简单好用
    PrinceofInj
        2
    PrinceofInj  
       2022-10-01 10:47:41 +08:00
    可能只是管理里面看不到了。试试 schtask
    XavierOops
        3
    XavierOops  
       2022-10-01 10:50:00 +08:00
    python ,以前拿 python 定时压缩备份过我的世界地图存档
    steins2628
        4
    steins2628  
       2022-10-01 10:55:38 +08:00
    https://github.com/Hellager/MissionBackup/tree/pyqt
    可以看看我以前写的这个,基于 pyqt ,下下来就能用
    最近在用 tauri 重写,不过预计就不支持 win7 了
    ch2
        5
    ch2  
       2022-10-01 11:05:28 +08:00
    不要用快捷方式,用完整路径
    sjmcefc2
        6
    sjmcefc2  
    OP
       2022-10-01 11:46:56 +08:00
    7zip
    @PrinceofInj 这个 schtask 搜不到。

    @eason1874 这个有什么参考的资料吗?比如命令都怎么写? windows 7 下面

    @XavierOops 需要备份的文件在 smb 共享盘上


    @steins2628 这个看起来很好啊,
    Tumblr
        7
    Tumblr  
       2022-10-01 11:59:13 +08:00
    @PrinceofInj #2 不是 shdtask ,是 taskschd.msc ,那个工具叫 Task Scheduler 。
    sjmcefc2
        8
    sjmcefc2  
    OP
       2022-10-01 12:03:31 +08:00
    @Tumblr 这工具有的,就是有一个叫做计划任务的文件夹找不到。有一篇攻略说 winrar 要想实现定期压缩,就要 1.用 winrar 做一个快捷方式,2 不能添加计划任务,二是直接添加到计划任务文件夹
    p1956
        9
    p1956  
       2022-10-01 12:15:43 +08:00
    装 WSL ,用 linux 系统呢?
    0TSH60F7J2rVkg8t
        10
    0TSH60F7J2rVkg8t  
       2022-10-01 12:15:49 +08:00
    @sjmcefc2 计划任务直接填运行程序的完整路径,配好参数就可以,啥都能运行,和快捷方式毫无关系,我不知道哪个教程说的居然要快捷方式。

    一个例子:

    新建一个普通计划任务,触发条件你自己选,然后到运行程序部分,程序写:

    c:\myrar\unrar.exe

    参数写:
    x c:\yourfile.rar *.gif c:\extractfolder\

    如果参数里,包含空格,需要用双引号括起来,比如解压目标是 extract folder ,就是这样:

    x c:\yourfile.rar *.gif "c:\extract folder\"

    你按需运行下试试
    sjmcefc2
        11
    sjmcefc2  
    OP
       2022-10-01 12:21:13 +08:00
    @ahhui 还真有个教程这样说的,就是关键字“winrar windows 计划任务 ”
    Tumblr
        12
    Tumblr  
       2022-10-01 12:45:47 +08:00
    @sjmcefc2 #8 有这篇攻略的链接么?据我所知,在 Windows 下只有一个叫 Startup 的文件夹是提供开机启动的,并没有什么“计划任务”的文件夹可以提供定时任务。
    在 Windows 里定时执行任务,一般有两种方式:
    1. 通过自带的计划任务。
    2. 启动一个常驻的进程,然后通过这个进程定时执行任务。
    除以上,并没有第三种可以提供定时任务的方法。

    另外题外话,我觉得是时候升级 Windows 11 了,如果硬件支持不了最起码 Windows 10 也是好的,现在的一些工具对 Windows 7 的支持太不友好了。
    sjmcefc2
        13
    sjmcefc2  
    OP
       2022-10-01 13:09:21 +08:00
    @Tumblr url 贴不上,现在很多还是 win7 ,没办法升级
    PrinceofInj
        14
    PrinceofInj  
       2022-10-01 13:21:27 +08:00
    @sjmcefc2 记错了,应该是 schtasks
    sjmcefc2
        16
    sjmcefc2  
    OP
       2022-10-01 13:38:00 +08:00
    @PrinceofInj 太感谢了
    clorischan
        17
    clorischan  
       2022-10-01 13:59:16 +08:00
    然后提醒一下
    如果备份的磁盘是从 SMB 映射的磁盘
    则创建磁盘的系统用户要求处于已登录状态
    并且用于备份的进程(不管是用任务计划还是别的什么启动的 WinRAR / 7z ...)
    也需要以相同的用户以交互模式运行

    如果不是同用户, 或者同用户启动但是以非交互模式运行, 都是无法访问映射的磁盘的.
    sjmcefc2
        18
    sjmcefc2  
    OP
       2022-10-01 15:00:23 +08:00
    @clorischan 就是已经映射了也不行吗?
    比如 smb 的硬盘,已经映射到本地 z 盘?
    Tumblr
        19
    Tumblr  
       2022-10-01 15:23:20 +08:00
    @PrinceofInj #14 这个命令只是提供计划任务管理的,和通过管理器打开的操作没太多差别,这属于是把简单问题复杂化了。

    @ahhui #10 是的,很多执行失败的计划任务是执行账户和当前账户的环境变量不同,导致一些相对路径的命令找不到。用绝对路径向来是一个比较稳妥的方法。
    yjd
        20
    yjd  
       2022-10-01 15:31:22 +08:00
    win7 自带任务计划+WinRAR 就可以实现你目的。
    如果参数命令太多,写到一个批处理。计划任务调用即可。
    真搞不懂一堆本末倒置的方案咋想的
    计划任务列表有个 bug ,手动测试时,你看他一在卡着,实际是执行成功,需要手动刷新下。
    systemcall
        21
    systemcall  
       2022-10-01 15:41:54 +08:00
    建议写一个批处理,全部用绝对路径,计划任务里面添加这个批处理
    计划任务的触发器是可以调的,你先配置好 Windows 的自动登录,再把那个任务的触发器调成在用户登录后执行,使用的用户调成你那个用户,就行了
    触发器加点延时,因为 smb 映射磁盘要点时间
    clorischan
        22
    clorischan  
       2022-10-01 15:44:20 +08:00
    @sjmcefc2

    就是映射了才不行, 映射磁盘只对当前用户下以交互模式运行的程序有效

    例如:

    系统用户为: admin
    然后从 SMB \\storage_server\share 映射一个盘符到本地 Z:\
    使用任务计划调用 7z

    那么在使用任务计划的的情况下
    运行任务时,请使用下列用户帐户: admin (与创建映射磁盘的用户必须相同)
    只在用户登录时运行: √ (只有选择此项才是以交互模式运行,选择不管用户是否登录都要运行为非交互模式)
    --- 以上 2 条都满足才能访问直接映射磁盘 Z:\ 否则只能使用 \\storage_server\share 这样的远程路径访问(需要有凭据
    然后操作为启用程序 : 调用 7z 执行相关操作
    yjd
        23
    yjd  
       2022-10-01 16:41:21 +08:00
    网络 smb 根本不是啥事。
    windows 可以记忆网络访问凭据。更省事直接写在批处理里用 net use \\xxx\ipc$ 连接下。
    再者 winrar.exe 执行命令行根本就没显示 UI 不需要去想那个交互模式设定,再不济还有 Rar.exe 纯命令行。
    1 ,访问 smb 的路径,需要 smb 服务器账号有浏览和读取权限就行
    2 ,本地调用 winrar 打包,存储压缩包的目录有写权限就行。本地账号和 smb 账号是两回事,不要理解错。
    3 ,计划任务本身执行权限就可以设置为 system 级,直接选最高权限即可。因为如果你选账号还得填密码 233
    crab
        24
    crab  
       2022-10-01 16:58:22 +08:00
    试下写 bat 里面,间接调用的方式.
    sjmcefc2
        25
    sjmcefc2  
    OP
       2022-10-01 17:17:00 +08:00
    反馈一下,7z 的 bat 命令+windows 计划任务完美解决。
    其他的 UI 工具确实挺好,但是有些机器上会出现 dll 缺失的问题,这种基本无解,因为感觉即使是一个安装盘装的系统,dll 好像也不太相同。
    sjmcefc2
        26
    sjmcefc2  
    OP
       2022-10-01 17:17:29 +08:00
    系统自带的工具比其他的好很多,没有什么其他的需要安装的依赖问题。
    kemistep
        27
    kemistep  
       2022-10-01 18:51:21 +08:00
    提供参考:
    [zip 压缩备份文件并 ignore 部分文件 - ministep]( https://bigdata.ministep.cn/423/)

    windows 使用 7zip 备份文件夹并 ignore 部分文件

    定时执行,就放到 windows 的任务调度程序中,手动设置下即可;
    kemistep
        28
    kemistep  
       2022-10-01 18:52:36 +08:00
    附上命令行:

    cmd 执行
    ## 备份 python 文件夹
    "C:\Program Files\7-Zip\7z.exe" a G:\backups\windows_localhost\backup_python_v101.zip D:\code\python -xr!*\venv\* -xr!*\.git\* -xr!*\.ipynb_checkpoints\* -xr!*\__pycache__\* -xr!*\history\* -xr!*\histroy\* -xr!*\tmp\* -xr!*.log -xr!*.mp3 -xr!*.mp4 -xr!*.sqlite3 -xr!*.ipynb -xr!*.ttf


    -xr 为忽略部分文件夹或者文件

    这是 cmd 命令,可以写成一个 bat 脚本即可;
    sjmcefc2
        29
    sjmcefc2  
    OP
       2022-10-02 09:50:43 +08:00
    发现有一个问题,就是现在没有计算备份的进度,有可能 10 个 zip 一起备份,就会很慢。
    如果想根据备份对象的大小来计算启动备份的时间,这个有没有比较经典的做法呢?
    现在能想到的就是文件大小 /拷贝速度 计算出一个 zip 需要的时间,然后依次类推,感觉做法很傻啊
    flynaj
        30
    flynaj  
       2022-10-03 01:33:04 +08:00 via Android
    命令行是 rar.exe 不要快捷方式,要完整路径 参数。
    并行满,你全部写到一个批处理里面,顺序备份。
    byzod
        31
    byzod  
       2022-10-03 19:14:27 +08:00
    @sjmcefc2

    start "" rar.exe zip1
    start "" rar.exe zip2

    是并行

    rar.exe zip1
    rar.exe zip2

    是串行
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1584 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 16:19 PVG 00:19 LAX 08:19 JFK 11:19
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86