找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 83162|回复: 18

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

[复制链接]
发表于 2020-9-3 15:25:48 | 显示全部楼层 |阅读模式
要将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
复制代码
发表于 2020-9-3 16:01:36 | 显示全部楼层
回复 1# tmp05


    请详细说明一下哪里不正确?
 楼主| 发表于 2020-9-3 17:21:50 | 显示全部楼层
回复 2# Batcher
压缩包里是winrar程序文件夹里的内容
发表于 2020-9-3 17:29:01 | 显示全部楼层
回复 3# tmp05


加个双引号试试可以吗
cd /d "C:\Program Files\WinRAR\"
 楼主| 发表于 2020-9-4 09:05:27 | 显示全部楼层
回复  tmp05


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


在cmd窗口调试了下,是这样的:
发表于 2020-9-4 09:46:25 | 显示全部楼层
回复 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
 楼主| 发表于 2020-9-4 10:03:42 | 显示全部楼层
本帖最后由 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
 楼主| 发表于 2020-9-4 13:49:59 | 显示全部楼层
本帖最后由 tmp05 于 2020-9-4 13:51 编辑

回复 9# WHY
运行通过,比原来的code更简洁高效,若运行前能检测被备份的文件是否处于打开状态、若是就弹个提醒,待关闭后再执行,就更完美了。要求有点高了,呵呵
 楼主| 发表于 2020-9-5 09:54:17 | 显示全部楼层
若运行前能检测被备份的文件是否处于打开状态、若是就弹个提醒,待关闭后再执行,就更完美了
 楼主| 发表于 2020-9-5 19:44:59 | 显示全部楼层
感谢分享详细代码,但运行出错(系统是7x64),不知是否测过,如图:
 楼主| 发表于 2020-9-6 10:35:19 | 显示全部楼层
本帖最后由 tmp05 于 2020-9-6 13:43 编辑

回复 14# WHY
请告知正确姿势,莫非不是双击运行?
 楼主| 发表于 2020-9-14 10:28:31 | 显示全部楼层
本帖最后由 tmp05 于 2020-9-14 10:32 编辑

why兄弟的回复哪去了?备份前检测文件是否打开的问题还没解决,顶上去。
运行前检测被备份的文件是否处于打开状态、若是就弹个提醒,待关闭后再执行
 楼主| 发表于 2020-9-16 17:26:39 | 显示全部楼层
请版主帮忙解决下这个问题,谢谢
运行前检测被备份的文件是否处于打开状态、若是就弹个提醒,待关闭后再执行
发表于 2020-9-17 09:32:54 | 显示全部楼层
回复 10# tmp05


看不到完整代码无法做出准确判断,从截图报错信息来看,那是PowerShell代码不是BAT代码,执行方法请参考:
http://bbs.bathome.net/thread-31071-1-1.html
 楼主| 发表于 2020-9-17 14:03:55 | 显示全部楼层
本帖最后由 tmp05 于 2020-9-17 14:06 编辑

回复 14# Batcher
code让why兄弟删除了,当时也没保存
方便时帮写一个,不胜感激!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 04:07 , Processed in 0.025074 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表