需求:在 win7 上定期压缩文件 困难:搜索了一些材料,发现我的 win7 上都没有计划任务这个文件夹,只有计划程序,通过计划程序来调用 winrar 的快捷方式,总是无法成功。 求助:有没有 win7 上可以用的非系统自带的计划程序?可以完成我的这个备份的需求呢?
1
eason1874 2022-10-01 10:40:19 +08:00
别调用快捷方式,直接填程序路径,后面跟参数。如果你不知道程序安装在哪里,你就选择它的快捷方式在右键菜单点“属性”,在选项卡切换到“快捷方式”,目标那栏就是程序路径
另外说一句,7zip 比 winrar 好用吧,开源免费无广告,命令行也简单好用 |
2
PrinceofInj 2022-10-01 10:47:41 +08:00
可能只是管理里面看不到了。试试 schtask
|
3
XavierOops 2022-10-01 10:50:00 +08:00
python ,以前拿 python 定时压缩备份过我的世界地图存档
|
4
steins2628 2022-10-01 10:55:38 +08:00
https://github.com/Hellager/MissionBackup/tree/pyqt
可以看看我以前写的这个,基于 pyqt ,下下来就能用 最近在用 tauri 重写,不过预计就不支持 win7 了 |
5
ch2 2022-10-01 11:05:28 +08:00
不要用快捷方式,用完整路径
|
6
sjmcefc2 OP 7zip
@PrinceofInj 这个 schtask 搜不到。 @eason1874 这个有什么参考的资料吗?比如命令都怎么写? windows 7 下面 @XavierOops 需要备份的文件在 smb 共享盘上 @steins2628 这个看起来很好啊, |
7
Tumblr 2022-10-01 11:59:13 +08:00
@PrinceofInj #2 不是 shdtask ,是 taskschd.msc ,那个工具叫 Task Scheduler 。
|
8
sjmcefc2 OP @Tumblr 这工具有的,就是有一个叫做计划任务的文件夹找不到。有一篇攻略说 winrar 要想实现定期压缩,就要 1.用 winrar 做一个快捷方式,2 不能添加计划任务,二是直接添加到计划任务文件夹
|
9
p1956 2022-10-01 12:15:43 +08:00
装 WSL ,用 linux 系统呢?
|
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\" 你按需运行下试试 |
12
Tumblr 2022-10-01 12:45:47 +08:00
@sjmcefc2 #8 有这篇攻略的链接么?据我所知,在 Windows 下只有一个叫 Startup 的文件夹是提供开机启动的,并没有什么“计划任务”的文件夹可以提供定时任务。
在 Windows 里定时执行任务,一般有两种方式: 1. 通过自带的计划任务。 2. 启动一个常驻的进程,然后通过这个进程定时执行任务。 除以上,并没有第三种可以提供定时任务的方法。 另外题外话,我觉得是时候升级 Windows 11 了,如果硬件支持不了最起码 Windows 10 也是好的,现在的一些工具对 Windows 7 的支持太不友好了。 |
14
PrinceofInj 2022-10-01 13:21:27 +08:00
@sjmcefc2 记错了,应该是 schtasks
|
15
PrinceofInj 2022-10-01 13:22:31 +08:00
|
16
sjmcefc2 OP @PrinceofInj 太感谢了
|
17
clorischan 2022-10-01 13:59:16 +08:00
然后提醒一下
如果备份的磁盘是从 SMB 映射的磁盘 则创建磁盘的系统用户要求处于已登录状态 并且用于备份的进程(不管是用任务计划还是别的什么启动的 WinRAR / 7z ...) 也需要以相同的用户以交互模式运行 如果不是同用户, 或者同用户启动但是以非交互模式运行, 都是无法访问映射的磁盘的. |
18
sjmcefc2 OP @clorischan 就是已经映射了也不行吗?
比如 smb 的硬盘,已经映射到本地 z 盘? |
19
Tumblr 2022-10-01 15:23:20 +08:00
@PrinceofInj #14 这个命令只是提供计划任务管理的,和通过管理器打开的操作没太多差别,这属于是把简单问题复杂化了。
@ahhui #10 是的,很多执行失败的计划任务是执行账户和当前账户的环境变量不同,导致一些相对路径的命令找不到。用绝对路径向来是一个比较稳妥的方法。 |
20
yjd 2022-10-01 15:31:22 +08:00
win7 自带任务计划+WinRAR 就可以实现你目的。
如果参数命令太多,写到一个批处理。计划任务调用即可。 真搞不懂一堆本末倒置的方案咋想的 计划任务列表有个 bug ,手动测试时,你看他一在卡着,实际是执行成功,需要手动刷新下。 |
21
systemcall 2022-10-01 15:41:54 +08:00
建议写一个批处理,全部用绝对路径,计划任务里面添加这个批处理
计划任务的触发器是可以调的,你先配置好 Windows 的自动登录,再把那个任务的触发器调成在用户登录后执行,使用的用户调成你那个用户,就行了 触发器加点延时,因为 smb 映射磁盘要点时间 |
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 执行相关操作 |
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 |
24
crab 2022-10-01 16:58:22 +08:00
试下写 bat 里面,间接调用的方式.
|
25
sjmcefc2 OP 反馈一下,7z 的 bat 命令+windows 计划任务完美解决。
其他的 UI 工具确实挺好,但是有些机器上会出现 dll 缺失的问题,这种基本无解,因为感觉即使是一个安装盘装的系统,dll 好像也不太相同。 |
26
sjmcefc2 OP 系统自带的工具比其他的好很多,没有什么其他的需要安装的依赖问题。
|
27
kemistep 2022-10-01 18:51:21 +08:00
提供参考:
[zip 压缩备份文件并 ignore 部分文件 - ministep]( https://bigdata.ministep.cn/423/) windows 使用 7zip 备份文件夹并 ignore 部分文件 定时执行,就放到 windows 的任务调度程序中,手动设置下即可; |
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 脚本即可; |
29
sjmcefc2 OP 发现有一个问题,就是现在没有计算备份的进度,有可能 10 个 zip 一起备份,就会很慢。
如果想根据备份对象的大小来计算启动备份的时间,这个有没有比较经典的做法呢? 现在能想到的就是文件大小 /拷贝速度 计算出一个 zip 需要的时间,然后依次类推,感觉做法很傻啊 |
30
flynaj 2022-10-03 01:33:04 +08:00 via Android
命令行是 rar.exe 不要快捷方式,要完整路径 参数。
并行满,你全部写到一个批处理里面,顺序备份。 |