batch-file - 在批处理文件中使用 7zip“排除通配符”
问题描述
我有一个用于项目备份的批处理文件,我想修改它以排除不必要的文件。
我当前的文件使用简单的 7z 命令将整个文件夹打包到一个存档中:
!7zipPath! a -t7z "archive_name" "path_to_add".
从我在其他人的问题中发现,要排除给定的文件,我可以使用标志,例如-x!.txt或-xr! .txt如果路径包含子文件夹。
!7zipPath! a -t7z "archive_name" "path_to_add" -xr!*.jt
这应该排除所有具有 .jt 扩展名(软件特定扩展名)的文件,但是 -x!*.jt 返回“不正确的通配符 typemaker *.jt 所以据我了解,7zip 不知道这个扩展名,所以我不能使用它(是正确的想法?)
因此,我尝试仅使用包含。其他问题的答案说它应该像这样简单地添加:
!7zipPath! a -t7z "archive_name" "path_to_add" ./*.xml
据我了解,这应该创建仅包含 .xml 文件的存档,同时保持结构,但它只是忽略该通配符并从路径中放置所有文件。它不返回任何类型的错误。
如何在批处理文件 7z 命令中使用 7zip 命令选项来获得预期结果?
附言; 它可以与文件夹上的扩展一起使用吗?例如,它会包括整个 folder.cojt 吗?
编辑:完整代码
@echo off
setlocal EnableDelayedExpansion
SETLOCAL ENABLEEXTENSIONS
rem Get the time from WMI - at least that's a format we can work with
set X=
for /f "skip=1 delims=" %%x in ('wmic os get localdatetime') do if not defined X set X=%%x
rem dissect into parts
set DATE.YEAR=%X:~0,4%
set DATE.MONTH=%X:~4,2%
set DATE.DAY=%X:~6,2%
echo Today is: %DATE.YEAR%-%DATE.MONTH%-%DATE.DAY%
if not exist %DATE.YEAR%-%DATE.MONTH%-%DATE.DAY% (
echo Making Backup
For /F "Delims=" %%A In ('where /r "C:\Program Files\7-Zip" /f 7z.exe') do Set zipPath=%%A
IF NOT DEFINED zipPath (
echo Extending search range for 7zip...
For /F "Delims=" %%A In ('where /r C:\ /f 7z.exe') do Set zipPath=%%A
)
IF NOT DEFINED zipPath (
echo Extending search range for 7zip...
For /F "Delims=" %%A In ('where /r D:\ /f 7z.exe') do Set zipPath=%%A
)
IF NOT DEFINED zipPath (
echo 7zip not found on this PC
echo You can close this window now
cmd /k
)
md %DATE.YEAR%-%DATE.MONTH%-%DATE.DAY%
cd %DATE.YEAR%-%DATE.MONTH%-%DATE.DAY%
!zipPath! a -t7z "%DATE.YEAR%-%DATE.MONTH%-%DATE.DAY%_TuneCells" "M:\01\TuneCells\"
)
if exist %DATE.YEAR%-%DATE.MONTH%-%DATE.DAY% (
echo Backup already created %DATE.YEAR%-%DATE.MONTH%-%DATE.DAY%
)
PAUSE
正如其中一项推荐中提到的,搜索 7z 是为了让多人可以轻松地使用代码,而不管他们的安装路径偏好如何(令人惊讶的广泛)
解决方案
推荐阅读
- python - python记录RotatingFileHandler和TimedRotatingFileHandler不适用于队列
- matlab - 将图例添加到 drawArrow 图(八度)
- javascript - 使用 useEffect 更新状态的问题
- html - 本地颤振资产图像未显示在 html 小部件中
- node.js - node.js 在定义之前使用函数
- assembly - 如何将 8 字节字符串从堆栈中移到寄存器中?
- typescript - 如何在打字稿中定义类型“任何字符串枚举”?
- android - Exoplayer - 单击屏幕时如何仅显示控制按钮
- jquery - 如何更正 Apify 中的选择器以从 JSON 数据链接获取数据?
- html - 有没有办法隐藏滚动条轨道或使其透明