标题: [文本处理] 关于自动备份自动生成log日志的BAT脚本 [打印本页]
作者: loveql26 时间: 2018-10-30 01:31 标题: 关于自动备份自动生成log日志的BAT脚本
本帖最后由 loveql26 于 2018-10-30 01:32 编辑
求助
如何将“D:\新新”这个文件夹(包含文件夹下的所有文件)复制到“E:\备份”目录下自动生成一个当天日期的文件里,如遇到文件被占用忽略的操作,然后在自动生成一个当天日期的txt文件。并将备份的开始时间(具体到几时几分几秒)以及结束时间(具体到几时几分几秒)写入到这个txt中。结束BAT
麻烦哪位大神能好心帮个忙,谢谢
作者: lifei259 时间: 2018-10-30 08:42
- @echo off
- (echo,备份开始时间:%time%
- xcopy /e /i /a /r /h /y /c "D:\新新" "E:\备份\%date%"
- echo,备份结束时间:%time%
- )>>%date%.txt
- pause
复制代码
作者: loveql26 时间: 2018-10-30 11:03
回复 2# lifei259
无法生成当天时间的txt文件,这是什么原因啊?
作者: lifei259 时间: 2018-10-30 11:19
回复 3# loveql26
文件和文件夹命名是不能使用以下9个字符:/ \ : * " < > | ?%time%时间的格式是:11:18:37.39 ,所发不能用,要想用可以改一下格式,就行了
作者: loveql26 时间: 2018-10-30 11:25
回复 4# lifei259
不是命名哦。。文件夹的命名不是日期吗?往txt写入的内容才是时间么。这个有影响吗?
作者: Batcher 时间: 2018-10-30 11:25
回复 3# loveql26
@echo off
for /f %%i in ('powershell -c "Get-Date -uformat '%%Y%%m%%d'"') do set "Today=%%i"
(echo,备份开始时间:%time%
xcopy /e /i /a /r /h /y /c "D:\新新" "E:\备份\%Today%"
echo,备份结束时间:%time%
)>>%Today%.txt
作者: Batcher 时间: 2018-10-30 11:26
回复 5# loveql26
操作系统不同,日期格式也可能不同:
星期二 2008-07-29
2008-07-29 星期二
07/29/2008 Tue
Tue 07/29/2008
作者: loveql26 时间: 2018-10-30 11:55
回复 7# Batcher
好哒。。我试试。谢谢大神
作者: loveql26 时间: 2018-10-30 13:22
回复 7# Batcher
这个txt生成的路径是哪里啊?日期格式是不是不同的操作系统需要手工改一下呢?
作者: Batcher 时间: 2018-10-30 13:34
回复 9# loveql26
默认是当前路径,你可以自己指定成某个完整路径,例如 C:\%Today%.txt
6楼代码测试过了吗?它不需要你手工修改系统日期格式。
作者: loveql26 时间: 2018-10-30 14:20
回复 10# Batcher
测试了。。就是有时候不生成txt,有的时候生成。。不知道什么原因
作者: Batcher 时间: 2018-10-30 14:52
回复 11# loveql26
把 @echo off 删掉
代码保存为 C:\test.bat
打开一个CMD窗口,执行命令:
C:\test.bat
这样可以看到详细的报错信息或者线索
作者: loveql26 时间: 2018-10-31 01:19
回复 12# Batcher
好的。。谢谢啦。。大神,我先试试
作者: lifei259 时间: 2018-10-31 08:33
我上传的代码都是试过的
作者: Batcher 时间: 2018-10-31 08:44
回复 14# lifei259
%date%这种写法通用性较差,在你电脑上测试成功的代码拿到别的电脑上可能会出错,原因见7楼。
作者: xczxczxcz 时间: 2018-10-31 09:47
来一个 保存为 xxx.ps1 右键在powershell 中运行- $txt= get-date -Uformat "%Y年-%m月-%d日"
- mkdir "e:\备份\$txt" -force
- get-date -Uformat "开始时间 $txt %H:%M:%S"|ac "e:\备份\$txt.log" -force -enc utf8
- copy "d:\新新" -destination "e:\备份\$txt" -Recurse -force
- get-date -Uformat "结束时间 $txt %H:%M:%S"|ac "e:\备份\$txt.log" -force -enc utf8
- pause
复制代码
作者: loveql26 时间: 2018-11-6 23:26
回复 15# Batcher
问题找出来,是因为在用win7自带的计划任务来实现自动运行的时候会出现有时候没有处理日志的txt文件生成。还有一个问题。。这个批处理在运行的时候是没有一个文字提示(就是他在运行复制的时候一直是一个批处理的黑框,怎么在那个黑框上显示正在备份,请稍等的字样),改如何加啊?我试了很多种方法都不行,手动运行是可以出现文字提示的,但是在用系统计划任务来实现自动运行的时候文字会变成不是有效的命令。不知道该如何处理。。。。。
作者: loveql26 时间: 2018-11-6 23:27
回复 16# xczxczxcz
我试试哦。谢谢啦
作者: Batcher 时间: 2018-11-7 13:05
回复 17# loveql26
把你试过的几个代码压缩上传我看一下
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |