[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] [已解决]求助手动备份文件的BAT代码区别

本帖最后由 jave000 于 2023-3-21 16:53 编辑

求助以下两个代码,代码主体一样,都是对与批处理文件同目录下的指定文件进行备份,并对文件名加上当天日期的后缀,然后将备份文件丢入Backup子目录内。
第一个代码包含了具体文件名,可以正常备份,备份文件也包含了日期后缀;
第二个代码使用通配符文件名,是我想要的形式,这样丢入任意文件夹内都能运行,它也确实能备份,但是备份文件始终不带日期后缀。
请问要如何修改才能让第二个代码既能使用通配符,也能带有日期后缀?
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f %%i in ('powershell -c "'{0:yyyy.MM.dd}' -f (get-date)"') do (
  3.     set "Today=%%i"
  4. )
  5. echo f |xcopy /y "%~dp0\123.xlsx"  "%~dp0\123_%Today%.xlsx"
复制代码
--------------------------------------------------------------------------------------------------------------
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f %%i in ('powershell -c "'{0:yyyy.MM.dd}' -f (get-date)"') do (
  3.     set "Today=%%i"
  4. )
  5. echo f |xcopy /y "%~dp0\*.xlsx"  "%~dp0\*_%Today%.xlsx"
复制代码
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

本帖最后由 jave000 于 2023-3-21 13:18 编辑

回复 2# Batcher


    感谢大神,按照我自己的需求,改成了如下。经测试,可以不影响备份子目录内已有的旧有文件。
虽然并不明白为什么xcopy使用通配符会出现那样的状况。
  1. @echo off
  2. for /f %%i in ('powershell -c "'{0:yyyy.MM.dd}' -f (get-date)"') do (
  3.     set "Today=%%i"
  4. )
  5. md Backup
  6. for /f "delims=" %%i in ('dir /b /a-d *.xls*') do (
  7.     copy /y "%~dp0\%%i"  "%~dp0\Backup\%%~ni_%Today%%%~xi"
  8. )
复制代码

TOP

回复 1# jave000
  1. @echo off
  2. for /f %%i in ('powershell -c "'{0:yyyy.MM.dd}' -f (get-date)"') do (
  3.     set "Today=%%i"
  4. )
  5. for /f "delims=" %%i in ('dir /b /a-d *.xlsx') do (
  6.     copy /y "%~dp0\%%i"  "%~dp0\%%~ni_%Today%%%~xi"
  7. )
复制代码
1

评分人数

我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表