通配符使用更新具有相似标题的 7zip Sfx
Wildcard use updating 7zip Sfx with similar titles
我有 4 个不同的 Sfx 7Zip 文件,我需要根据情况下载和更新其中的 1 个文件。
zip 的文件名根据内容和功能的不同略有不同,但标题中都带有 AUTO 字样。
我使用此命令更新每个文件都没有问题,但我希望简化更新代码。每个安装程序我有一行来更新某个文件,但我只想要一行来更新下载的文件的任何版本。
"%~dp0Configza.exe" u "%~dp0Installer1Auto.exe" "%~dp0Config\config.cfg"
"%~dp0Configza.exe" u "%~dp0Installer2Auto.exe" "%~dp0Config\config.cfg"
"%~dp0Configza.exe" u "%~dp0Installer3Auto.exe" "%~dp0Config\config.cfg"
"%~dp0Configza.exe" u "%~dp0Installer4Auto.exe" "%~dp0Config\config.cfg"
无论我下载的是什么版本的 sfx,我如何使用通配符(或类似的)只有一行代码。
我在想类似下面的事情(但行不通)...
"%~dp0Configza.exe" u "%~dp0*Auto*.exe" "%~dp0Config\config.cfg"
"or"
"%~dp0Configza.exe" u "%~dp0*Installer.exe" "%~dp0Config\config.cfg"
任何提示都将是极好的,提前致谢。
for /L %%q in (1,1,4) do "%~dp0Configza.exe" u "%~dp0Installer%%qAuto.exe" "%~dp0Config\config.cfg"
或
for %%q in (1 2 3 4) do "%~dp0Configza.exe" u "%~dp0Installer%%qAuto.exe" "%~dp0Config\config.cfg"
首先开始将%%q
设置为1,然后将%%q
增加1,直到达到4。
第二个将 %%q
依次设置为值 1..4。
第二种方法的优点是,如果你想处理名称变体为Wibble, wobble, wubble, and flob
的文件,那么只需将代码更改为
即可
for %%q in (Wibble wobble wubble flob)...
此外,如有必要,可以控制命令,例如:
for /L %%q in (1,1,4) do if exist "%~dp0Configza.exe" "%~dp0Configza.exe" u "%~dp0Installer%%qAuto.exe" "%~dp0Config\config.cfg"
如果只有 1
存在,这将避免执行 2
、3
和 4
。
要对目录 %~dp0
中找到的所有 *.exe 文件执行,请使用
FOR %%a IN ("%~dp0\*.exe") DO ECHO("%~dp0Configza.exe" u "%%~fa" "%~dp0Config\config.cfg"
如果需要,*.exe
可以是 installer*auto.exe
。
我有 4 个不同的 Sfx 7Zip 文件,我需要根据情况下载和更新其中的 1 个文件。
zip 的文件名根据内容和功能的不同略有不同,但标题中都带有 AUTO 字样。
我使用此命令更新每个文件都没有问题,但我希望简化更新代码。每个安装程序我有一行来更新某个文件,但我只想要一行来更新下载的文件的任何版本。
"%~dp0Configza.exe" u "%~dp0Installer1Auto.exe" "%~dp0Config\config.cfg"
"%~dp0Configza.exe" u "%~dp0Installer2Auto.exe" "%~dp0Config\config.cfg"
"%~dp0Configza.exe" u "%~dp0Installer3Auto.exe" "%~dp0Config\config.cfg"
"%~dp0Configza.exe" u "%~dp0Installer4Auto.exe" "%~dp0Config\config.cfg"
无论我下载的是什么版本的 sfx,我如何使用通配符(或类似的)只有一行代码。
我在想类似下面的事情(但行不通)...
"%~dp0Configza.exe" u "%~dp0*Auto*.exe" "%~dp0Config\config.cfg"
"or"
"%~dp0Configza.exe" u "%~dp0*Installer.exe" "%~dp0Config\config.cfg"
任何提示都将是极好的,提前致谢。
for /L %%q in (1,1,4) do "%~dp0Configza.exe" u "%~dp0Installer%%qAuto.exe" "%~dp0Config\config.cfg"
或
for %%q in (1 2 3 4) do "%~dp0Configza.exe" u "%~dp0Installer%%qAuto.exe" "%~dp0Config\config.cfg"
首先开始将%%q
设置为1,然后将%%q
增加1,直到达到4。
第二个将 %%q
依次设置为值 1..4。
第二种方法的优点是,如果你想处理名称变体为Wibble, wobble, wubble, and flob
的文件,那么只需将代码更改为
for %%q in (Wibble wobble wubble flob)...
此外,如有必要,可以控制命令,例如:
for /L %%q in (1,1,4) do if exist "%~dp0Configza.exe" "%~dp0Configza.exe" u "%~dp0Installer%%qAuto.exe" "%~dp0Config\config.cfg"
如果只有 1
存在,这将避免执行 2
、3
和 4
。
要对目录 %~dp0
中找到的所有 *.exe 文件执行,请使用
FOR %%a IN ("%~dp0\*.exe") DO ECHO("%~dp0Configza.exe" u "%%~fa" "%~dp0Config\config.cfg"
如果需要,*.exe
可以是 installer*auto.exe
。