Board logo

标题: [日期时间] [已解决]批处理解压缩怎样把存储的名称改为当前时间 [打印本页]

作者: lovekix    时间: 2024-3-20 09:36     标题: [已解决]批处理解压缩怎样把存储的名称改为当前时间

  1. @echo off
  2. REM 根据自己电脑实际情况设置 7-Zip 的路径
  3. set "My7z=C:\Program Files\7-Zip\7z.exe"
  4. cd /d "C:\Users\Administrator\AppData\Local\Pal\Saved\SaveGames"
  5. for /f "delims=" %%i in ('dir /b') do (
  6.     echo 正在处理文件 %%i
  7.     "%My7z%" a "D:\Contra Operation Galuga\xi.zip" "%%i"
  8. )
  9. pause
复制代码
现在  存储的 名称为  xi.zip   
想改成当前时间  精确到秒
作者: 77七    时间: 2024-3-20 10:31

  1. @echo off
  2. REM 根据自己电脑实际情况设置 7-Zip 的路径
  3. set "My7z=C:\Program Files\7-Zip\7z.exe"
  4. cd /d "C:\Users\Administrator\AppData\Local\Pal\Saved\SaveGames"
  5. for /f "delims=" %%a in ('powershell -c "Get-Date -UFormat '%%Y%%m%%d_%%H%%M%%S'"') do (
  6. for /f "delims=" %%i in ('dir /b') do (
  7. echo 正在处理文件 %%i
  8. "%My7z%" a "D:\Contra Operation Galuga\%%a.zip" "%%i"
  9. )
  10. )
  11. pause
复制代码

作者: lovekix    时间: 2024-3-20 10:37

本帖最后由 lovekix 于 2024-3-20 10:39 编辑

回复 2# 77七


    谢谢
  1. @echo off
  2. REM 根据自己电脑实际情况设置 7-Zip 的路径
  3. set "My7z=C:\Program Files\7-Zip\7z.exe"
  4. cd /d "C:\Users\Administrator\AppData\Local\Pal\Saved\SaveGames"
  5. for /f "delims=" %%a in ('powershell -c "Get-Date -UFormat '%%Y%%m%%d_%%H%%M%%S'"') do (
  6. for /f "delims=" %%i in ('dir /b') do (
  7. echo 正在处理文件 %%i
  8. "%My7z%" a "D:\Contra Operation Galuga\%%a.zip" "%%i"
  9. )
  10. )
  11. pause
复制代码

作者: lovekix    时间: 2024-3-20 10:37

方法2
  1. @echo off
  2. set YYYYmmss=%date:~0,4%.%date:~5,2%.%date:~8,2% %time:~0,2%;%time:~3,2%,%time:~6,2%
  3. REM 根据自己电脑实际情况设置 7-Zip 的路径
  4. set "My7z=C:\Program Files\7-Zip\7z.exe"
  5. cd /d "C:\Users\Administrator\AppData\Local\ConnectedDevicesPlatform"
  6. for /f "delims=" %%i in ('dir /b') do (
  7.     echo 正在处理文件 %%i
  8.     "%My7z%" a "D:\Contra Operation Galuga\%YYYYmmss%.zip" "%%i"
  9. )
  10. pause
复制代码

作者: 77七    时间: 2024-3-20 11:13

回复 4# lovekix


   %date% 优点 :效率高,缺点 :在不同的代码页结果可能不同;调用2楼 powershell 代码 缺点 :多次调用影响效率,代码前出现 变量 y m h d_ ,则影响结果,
使用 (http://www.bathome.net/redirect.php?goto=findpost&ptid=3328&pid=247109)该楼powershell代码,不受变量影响
作者: lovekix    时间: 2024-3-21 16:27

回复 5# 77七


    忽然有一个想法   
按最近的时间解压   或者选择性的解压
  1. "C:\Program Files\7-Zip\7z.exe" x  "D:\Contra Operation Galuga\%%a.zip" -o"C:\Users\Administrator\AppData\Local\Pal\Saved\SaveGames"
复制代码
%%a.zip 把这个改成 最近时间的备份


比如 我备份了3个压缩包
2024.01.01-12:00:00.zip
2024.01.01-12:70:00.zip
2024.02.02-12:00:00.zip


用一行命令  解压 2024.02.02-12:00:00.zip 这个  
(时间备份的包  名称不固定)
作者: 77七    时间: 2024-3-21 16:32

回复 6# lovekix


  
  1. @echo off
  2. cd /d "D:\Contra Operation Galuga\"
  3. for /f "delims=" %%i in ('dir /b /a-d *.zip') do (
  4. set file=%%i
  5. )
  6. "C:\Program Files\7-Zip\7z.exe" x  "D:\Contra Operation Galuga\%file%" -o "C:\Users\Administrator\AppData\Local\Pal\Saved\SaveGames"
  7. pause
复制代码

作者: lovekix    时间: 2024-3-22 09:07

回复 7# 77七


    感谢   感谢  弄好了



贴出  完整的代码
  1. ECHO OFF
  2. MODE con COLS=80 LINES=38
  3. TITLE 魂斗罗存档
  4. color 3f
  5. :STARTS
  6. cls
  7. ECHO.
  8. ECHO. 1.备份魂斗罗存档
  9. ECHO. 2.还原魂斗罗存档
  10. ECHO.
  11. ECHO. ………………………………………………………………………………………………………
  12. rem 输入数字,以空格或逗号分隔
  13. set /p str=
  14. for %%a in (%str%) do call :%%a & pause
  15. exit
  16. :1
  17. CLS
  18. COLOR 3f
  19. REM 根据自己电脑实际情况设置 7-Zip 的路径
  20. set "My7z=C:\Program Files\7-Zip\7z.exe"
  21. cd /d "C:\Users\Administrator\AppData\LocalLow\WayForward Technologies\Contra_ Operation Galuga"
  22. for /f "delims=" %%a in ('powershell -c "Get-Date -UFormat '%%Y%%m%%d_%%H%%M%%S'"') do (
  23. for /f "delims=" %%i in ('dir /b') do (
  24. echo 正在处理文件 %%i
  25. "%My7z%" a "D:\Contra Operation Galuga\%%a.zip" "%%i"
  26. )
  27. )
  28. pause
  29. exit
  30. :2
  31. CLS
  32. COLOR 2f
  33. cd /d "D:\Contra Operation Galuga\"
  34. for /f "delims=" %%i in ('dir /b /a-d *.zip') do (
  35. set file=%%i
  36. )
  37. "C:\Program Files\7-Zip\7z.exe" x -y "D:\Contra Operation Galuga\%file%" -o"C:\Users\Administrator\AppData\LocalLow\WayForward Technologies\Contra_ Operation Galuga"
  38. pause
  39. GOTO STARTS
复制代码

作者: lovekix    时间: 2024-4-11 11:06

本帖最后由 lovekix 于 2024-4-11 11:08 编辑

回复 7# 77七
  1. @echo off
  2. REM 根据自己电脑实际情况设置 7-Zip 的路径
  3. set "My7z=C:\Program Files\7-Zip\7z.exe"
  4. cd /d "C:\Users\Administrator\AppData\Local\Pal\Saved\SaveGames"
  5. for /f "delims=" %%a in ('powershell -c "Get-Date -UFormat '%%Y%%m%%d_%%H%%M%%S'"') do (
  6. for /f "delims=" %%i in ('dir /b') do (
  7. echo 正在处理文件 %%i
  8. "%My7z%" a "D:\Contra Operation Galuga\%%a.zip" "%%i"
  9. )
  10. )
  11. pause
复制代码
D:\Contra Operation Galuga

可以改成 当前文件夹吗?(用%cd%   替换  会到C:\Users\Administrator\AppData\Local\Pal\Saved\SaveGames文件夹下)
作者: 77七    时间: 2024-4-11 11:30

回复 9# lovekix


   用 %~dp0 替换
作者: ygqiang    时间: 2024-4-11 14:54

本帖最后由 ygqiang 于 2024-4-11 14:56 编辑
  1. set "dqmu=%~dp0"
  2. cd /d "%dqmu%"
复制代码
%cd%:脚本执行的当前目录,
需要注意的是,这里的当前目录有可能和脚本实际所在目录不一致。

%~dp0%:脚本文件所在的目录,
注意,目录的路径为全路径,并且带结尾的\。


%cd%代表的是当前工作目录(current working directory,variable);
%~dp0代表的是当前批处理文件所在完整目录(the batch file's directory,fixed)。


尽量使用%~dp0,不建议使用%cd%,有其他需求除外。




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