(*.img)批处理文件中的fastboot flash%%i



im正在寻找在同一文件夹中闪存多个*.img文件而不复制的正确方法"fastboot flash xxxxxxxxxx.img";所有行上的命令我希望输出像这个

flash boot... OKAY
flash recovery... OKAY
flash fastboot... OKAY
flash fastboot... FAILED

我在用

for %%i in (*.img) do fastboot flash %%i %%i do @echo flash %%i ...OKAY

但是输出不是我想要的

Start Flashing ....
target reported max download size of 805306368 bytes
sending 'boot.img' (131072 KB)...
OKAY [  3.751s]
target reported max download size of 805306368 bytes
sending 'boot_b.img' (131072 KB)...
OKAY [  3.755s]
writing 'boot_b.img'...
FAILED (remote: (boot_b.img_a) No such partition) ::: fail because partition name contain file extension
target reported max download size of 805306368 bytes
sending 'frp.img' (512 KB)...
OKAY [  0.023s]
writing 'frp.img'...
FAILED (remote: (frp.img_a) No such partition)
target reported max download size of 805306368 bytes
sending 'modem.img' (262144 KB)...
OKAY [  7.520s]
writing 'modem.img'...
FAILED (remote: (modem.img_a) No such partition)

它显示FAILED输出中没有这样的分区因为分区名称包含文件扩展名,并且它应该是";fastboot flash文件名filename.img"正确工作

for %%i in (*.img) do fastboot flash %%i %%i do @echo flash %%i ...ok

有什么帮助或建议来修复命令吗?

for %%i in (*.img) do SET "writing="&for /f "tokens=1,2delims=' %%u in ('fastboot flash "%%~ni" "%%i"') do (
IF DEFINED writing FOR /f %%y IN ("%%u") DO CALL ECHO %%writing%% %%%%y&SET "writing="
IF "%%u"=="writing " SET "writing=%%~nv"
)

应该做我认为你想做的事。

%%i依次获取分配给它的每个文件的名称。

writing设置为nothing(这使得writing未定义(后,使用参数flash、文件名的名称部分和完整文件名执行fastboot实用程序。则CCD_ 6的输出为"0";标记化的";使用'作为分隔符,因此任何行都被分割——'之前的任何部分被分配给%%u,下一个'之前的部分被分配到%%v

writing开始时未定义。如果我们在%%u中找到单词writing(重要地包括空间(,则我们将writing设置为%%v中第一个和第二个's之间的部分;被处理为文件名(它是(并删除扩展名(%%~nv(。

处理的下一行将是";FAILED/OKAY";报告,我们想要第一个单词,所以我们采用%%u并使用默认的";token=1delims=;仅将该单词抓取到CCD_ 20;然后使用call echoecho作为子壳中所需的数据来重制%%writing%% %%%%y%writing% %%y

没有保证,因为我必须模拟fastboot的输出进行测试。

有关标记化的文档,请参阅提示中的for /?,或者从SO 上的数千个示例中进行选择

找到解决方案。

for %%i in (*.img) do fastboot flash %%~ni %%i  >nul 2>&1 && (
echo - Writing %%~ni ... OKAY
) || (
echo - Writing %%~ni ... FAILED
)

输出

- Writing boot_a ... OKAY
- Writing boot_b ... OKAY
- Writing dip ... OKAY
- Writing dsp_a ... OKAY
- Writing dtbo_a ... OKAY
- Writing dtbo_b ... OKAY
- Writing ffu ... OKAY
- Writing frp ... OKAY
- Writing fsc ... FAILED
- Writing fsg ... FAILED
- Writing imagefv_a ... OKAY
- Writing imagefv_b ... OKAY
- Writing mdtp_a ... OKAY
- Writing mdtp_b ... OKAY

最新更新