我正在创建一个批处理脚本,我需要一些帮助。我试图让批量自动识别iPhone版本,只需查看IPSW,例如:iPhone5,2_9.2.1_11D25_Restore.ipsw,我想将“5,2”设置为变量,但我需要先找到它。
提前致谢!
答案 0 :(得分:0)
@ECHO OFF
SETLOCAL
SET "IPSW=iPhone5,2_9.2.1_11D25_Restore.ipsw"
FOR /f "delims=_" %%a IN ("%IPSW%") DO SET "iphoneversion=%%a"
IF "%iphoneversion:~0,6%"=="iPhone" (SET "iphoneversion=%iphoneversion:~6%") ELSE (SET iphoneversion=?)
ECHO iphoneversion=%iphoneversion%
GOTO :EOF
假设您已将IPSW
设置为您需要的字符串(我使用您提供的字符串进行测试),那么上述例程将首先分配IPSW
的部分,但不包括第一个_
1}}到%%a
,然后到iphoneversion
。
如果前6个字符正好是iPhone
,那么前6个字符将被删除,否则该值将设置为?
答案 1 :(得分:0)
很高兴知道这些是文件名而不是文档中的文本;在这个问题之前,我不知道IPSW是什么。
这假设您在与脚本相同的目录中有多个IPSW文件。
@echo off
setlocal enabledelayedexpansion
for /f "tokens=1,2 delims=," %%A in ('dir /b *.ipsw') do (
set iDevice=%%A
set iVersion=%%B
REM Take the last character before the comma and the first character after the comma
set "device_version=!iDevice:~-1!,!iVersion:~0,1!"
echo !device_version!
)