Board logo

标题: [文件操作] 批处理不能加密压缩备份当前日期的文件,不知错哪了? [打印本页]

作者: tmp05    时间: 2020-9-3 15:25     标题: 批处理不能加密压缩备份当前日期的文件,不知错哪了?

要将d:\doc下当前日期的docx、xlsx、pptx、txt四类文件用winrar加密压缩备份到d:\doc下以日期命名的文件,如doc20200903.rar,然后删除源文件,写了以下批处理,运行后出来的结果不正确,请哪位大侠帮修改下,谢谢!
  1. @echo off
  2. cd /d C:\Program Files\WinRAR\
  3. set "riqi=%date:~0,4%%date:~5,2%%date:~8,2%"
  4. for /r d:\doc %%i in (*.docx*.xlsx*.pptx*.txt) do "C:\Program Files\WinRAR\Rar.exe" a -hppwd -ta%riqi% d:\doc\docbackup%riqi%.rar
复制代码

作者: Batcher    时间: 2020-9-3 16:01

回复 1# tmp05


    请详细说明一下哪里不正确?
作者: tmp05    时间: 2020-9-3 17:21

回复 2# Batcher
压缩包里是winrar程序文件夹里的内容
作者: Batcher    时间: 2020-9-3 17:29

回复 3# tmp05


加个双引号试试可以吗
cd /d "C:\Program Files\WinRAR\"
作者: tmp05    时间: 2020-9-4 09:05

回复  tmp05


加个双引号试试可以吗
cd /d "C:\Program Files\WinRAR\"
Batcher 发表于 2020-9-3 17:29


在cmd窗口调试了下,是这样的:
作者: Batcher    时间: 2020-9-4 09:46

回复 5# tmp05


cd /d 那一行全部删掉再试试呢
还有就是不同的文件用空格隔开 for /r d:\doc %%i in (*.docx *.xlsx *.pptx *.txt) do
再有就是CMD调试的方法不是把BAT文件的命令依次复制进来执行,请参考Q-01的方法:
https://mp.weixin.qq.com/s/6lbb97qUOs1sTyKJfN0ZEQ
作者: tmp05    时间: 2020-9-4 10:03

本帖最后由 tmp05 于 2020-9-4 10:15 编辑

回复 6# Batcher

改成这样可以了,但批处理只能放在d:\doc文件夹下,放到其它文件夹就不对,这样就不能同时备份其它文件夹的文件了,请问哪里修改下?谢谢!

@echo off
set "riqi=%date:~0,4%%date:~5,2%%date:~8,2%"
for /r d:\doc %%i in (*.docx *.xlsx *.pptx *.txt) do "C:\Program Files\WinRAR\Rar.exe" a -hppwd -ta%riqi% d:\doc\docbackup%riqi%.rar
作者: tmp05    时间: 2020-9-4 13:49

本帖最后由 tmp05 于 2020-9-4 13:51 编辑

回复 9# WHY
运行通过,比原来的code更简洁高效,若运行前能检测被备份的文件是否处于打开状态、若是就弹个提醒,待关闭后再执行,就更完美了。要求有点高了,呵呵
作者: tmp05    时间: 2020-9-5 09:54

若运行前能检测被备份的文件是否处于打开状态、若是就弹个提醒,待关闭后再执行,就更完美了
作者: tmp05    时间: 2020-9-5 19:44

感谢分享详细代码,但运行出错(系统是7x64),不知是否测过,如图:
作者: tmp05    时间: 2020-9-6 10:35

本帖最后由 tmp05 于 2020-9-6 13:43 编辑

回复 14# WHY
请告知正确姿势,莫非不是双击运行?
作者: tmp05    时间: 2020-9-14 10:28

本帖最后由 tmp05 于 2020-9-14 10:32 编辑

why兄弟的回复哪去了?备份前检测文件是否打开的问题还没解决,顶上去。
运行前检测被备份的文件是否处于打开状态、若是就弹个提醒,待关闭后再执行
作者: tmp05    时间: 2020-9-16 17:26

请版主帮忙解决下这个问题,谢谢
运行前检测被备份的文件是否处于打开状态、若是就弹个提醒,待关闭后再执行
作者: Batcher    时间: 2020-9-17 09:32

回复 10# tmp05


看不到完整代码无法做出准确判断,从截图报错信息来看,那是PowerShell代码不是BAT代码,执行方法请参考:
http://bbs.bathome.net/thread-31071-1-1.html
作者: tmp05    时间: 2020-9-17 14:03

本帖最后由 tmp05 于 2020-9-17 14:06 编辑

回复 14# Batcher
code让why兄弟删除了,当时也没保存
方便时帮写一个,不胜感激!
作者: tmp05    时间: 2020-9-19 10:43

可惜当时没保存那代码,why兄弟也不会再发了,只能等待其它坛友的回复了。
作者: cmd1152    时间: 2021-7-22 23:26

回复 10# tmp05


    这不是bat脚本
作者: cmd1152    时间: 2021-7-23 00:22

回复 10# tmp05


    编码错了,编码是Ansi
作者: tmp05    时间: 2021-7-23 09:19

回复  tmp05


    编码错了,编码是Ansi
cmd1152 发表于 2021-7-23 00:22



    谢谢关注!




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2