在桌面双击图标怎么后自动执行两个动作
大家好,现在有一个芯片烧录需要先擦除,然后再烧录在cmd输入以下指令擦除:
cd D:\python poject\esptool
d:
esptool.py --chip esp32 --port COM3 erase_flash
在cmd输入以下指令烧录:
cd D:\python poject\esptool
d:
esptool.py --chip esp32 --port COM3 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 40m --flash_size detect 0x1000 D:\Auto\bootloader.bin 0xd000 D:\Auto\ota_data_initial.bin 0x10000 D:\Auto\esp32_ble_gateway.bin 0x8000 D:\Auto\partitions_two_ota.2MB.bin
怎么才能实现擦除完成后自动烧录呢?当然擦除完成后esptool.py程序会在cmd窗口print一些文字出来,我也会写在esptool.py执行烧录前检测是否有侦测到这些文字,但我怎么让程序检测到这些后执行烧录指令呢?因为我不可能在esptool.py里面输入上面的指令,但在cmd窗口输入的话,程序擦除完后cmd窗口马上关闭,若重新让程序打开一个cmd窗口烧录不是很好。
最后想要实现这样的功能:在桌面上双击图标后,可以出来cmd窗口来自动执行擦除和烧录,全部做完后按回车键执行下一个板子的擦除和烧录 一般来说,程序成功完成任务退出和失败退出,返回值是不一样的
像下面这个程序
执行dir成功后输出true
执行dir 1就失败了,然后输出false
你试一试你的那个烧录程序,看看成功烧录和没有成功,返回值是不是不一样
如果不一样的话,那就直接用返回值进行区分就可以了,不需要进行字符串匹配这种操作了
dir
if %errorlevel% == 0 (
echo "true"
) else (
echo "false"
)
pause
人造人 发表于 2021-12-24 10:05
谢谢您的回复。关键是我要先擦除,擦除要输入指令,完成后再烧录,至于你说的返回值之类的不管是字符还是其他的这很好说,没有也可以自己在程序里加
在cmd输入以下指令擦除:
cd D:\python poject\esptool
d:
esptool.py --chip esp32 --port COM3 erase_flash
在cmd输入以下指令烧录:
cd D:\python poject\esptool
d:
esptool.py --chip esp32 --port COM3 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 40m --flash_size detect 0x1000 D:\Auto\bootloader.bin 0xd000 D:\Auto\ota_data_initial.bin 0x10000 D:\Auto\esp32_ble_gateway.bin 0x8000 D:\Auto\partitions_two_ota.2MB.bin
怎么才能实现擦除完成后自动烧录呢?当然擦除完成后esptool.py程序会在cmd窗口print一些文字出来,我也会写在esptool.py执行烧录前检测是否有侦测到这些文字,但我怎么让程序检测到这些后执行烧录指令呢?因为我不可能在esptool.py里面输入上面的指令,但在cmd窗口输入的话,程序擦除完后cmd窗口马上关闭,若重新让程序打开一个cmd窗口烧录不是很好。
最后想要实现这样的功能:在桌面上双击图标后,可以出来cmd窗口来自动执行擦除和烧录,全部做完后按回车键执行下一个板子的擦除和烧录 因为我不是直接执行python esptool.py程序,擦除时需要输以下指令
cd D:\python poject\esptool
d:
esptool.py --chip esp32 --port COM3 erase_flash
擦除成功后需要输入以下指令烧录
cd D:\python poject\esptool
d:
esptool.py --chip esp32 --port COM3 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 40m --flash_size detect 0x1000 D:\Auto\bootloader.bin 0xd000 D:\Auto\ota_data_initial.bin 0x10000 D:\Auto\esp32_ble_gateway.bin 0x8000 D:\Auto\partitions_two_ota.2MB.bin
world_of_0_and_ 发表于 2021-12-24 11:57
谢谢您的回复。关键是我要先擦除,擦除要输入指令,完成后再烧录,至于你说的返回值之类的不管是字符还是 ...
你直接把这个复制到bat文件不就好了么?
就这样,执行完擦除后执行烧录
我不清楚 你为什么不这样做?
cd D:\python poject\esptool
d:
esptool.py --chip esp32 --port COM3 erase_flash
cd D:\python poject\esptool
d:
esptool.py --chip esp32 --port COM3 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 40m --flash_size detect 0x1000 D:\Auto\bootloader.bin 0xd000 D:\Auto\ota_data_initial.bin 0x10000 D:\Auto\esp32_ble_gateway.bin 0x8000 D:\Auto\partitions_two_ota.2MB.bin
pause 人造人 发表于 2021-12-24 12:08
你直接把这个复制到bat文件不就好了么?
就这样,执行完擦除后执行烧录
我不清楚 你为什么不这样做?
现在是擦除用下面的指令作为bat文件
cd D:\python poject\esptool
d:
esptool.py --chip esp32 --port COM3 erase_flash
烧录用下面的指令作为bat文件
cd D:\python poject\esptool
d:
esptool.py --chip esp32 --port COM3 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 40m --flash_size detect 0x1000 D:\Auto\bootloader.bin 0xd000 D:\Auto\ota_data_initial.bin 0x10000 D:\Auto\esp32_ble_gateway.bin 0x8000 D:\Auto\partitions_two_ota.2MB.bin
两个bat文件是可以实现,但是有以下弊端
1.第一个擦除bat文件,每次都需要双击,然后擦除完成后窗口就消失了
2.第二个是烧录bat文件,每次都需要双击,然后烧录完成后窗口就消失了
这对工厂来说,批量生产非常麻烦
我自己在主程序的代码里加了擦除完成后导入烧录.bat,能实现擦除完成后马上打开另一个cmd窗口来烧录
import os
os.system('start D:\烧录.bat')
但这依然不完美,而且每次都会打开一个新的烧录cmd窗口,这样烧录3个,就会有3个cmd烧录窗口
world_of_0_and_ 发表于 2021-12-24 14:13
现在是擦除用下面的指令作为bat文件
cd D:\python poject\esptool
d:
直接写一个bat文件不就可以了? 人造人 发表于 2021-12-24 14:16
直接写一个bat文件不就可以了?
直接写一个bat文件怎么做呢? world_of_0_and_ 发表于 2021-12-24 15:06
直接写一个bat文件怎么做呢?
world_of_0_and_ 发表于 2021-12-24 15:06
直接写一个bat文件怎么做呢?
rem 现在是擦除用下面的指令作为bat文件
cd D:\python poject\esptool
d:
esptool.py --chip esp32 --port COM3 erase_flash
rem 烧录用下面的指令作为bat文件
cd D:\python poject\esptool
d:
esptool.py --chip esp32 --port COM3 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 40m --flash_size detect 0x1000 D:\Auto\bootloader.bin 0xd000 D:\Auto\ota_data_initial.bin 0x10000 D:\Auto\esp32_ble_gateway.bin 0x8000 D:\Auto\partitions_two_ota.2MB.bin
pause 放一个bat文件里面不就可以了?
rem 是注释
rem 现在是擦除用下面的指令作为bat文件
cd D:\python poject\esptool
d:
esptool.py --chip esp32 --port COM3 erase_flash
rem 烧录用下面的指令作为bat文件
cd D:\python poject\esptool
d:
esptool.py --chip esp32 --port COM3 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 40m --flash_size detect 0x1000 D:\Auto\bootloader.bin 0xd000 D:\Auto\ota_data_initial.bin 0x10000 D:\Auto\esp32_ble_gateway.bin 0x8000 D:\Auto\partitions_two_ota.2MB.bin
rem 两个bat文件是可以实现,但是有以下弊端
rem 1.第一个擦除bat文件,每次都需要双击,然后擦除完成后窗口就消失了
rem 2.第二个是烧录bat文件,每次都需要双击,然后烧录完成后窗口就消失了
rem 这对工厂来说,批量生产非常麻烦
rem 我自己在主程序的代码里加了擦除完成后导入烧录.bat,能实现擦除完成后马上打开另一个cmd窗口来烧录
rem import os
rem os.system('start D:\烧录.bat')
rem 但这依然不完美,而且每次都会打开一个新的烧录cmd窗口,这样烧录3个,就会有3个cmd烧录窗口
pause 人造人 发表于 2021-12-24 15:26
放一个bat文件里面不就可以了?
rem 是注释
非常感谢您,人造人,晚上我先试试 人造人 发表于 2021-12-24 15:26
放一个bat文件里面不就可以了?
rem 是注释
非常感谢,原来还可以这样,双击之后确实是擦除和烧录一起做了。真想给你送点东西,不知道怎么联系你 world_of_0_and_ 发表于 2021-12-24 23:05
非常感谢,原来还可以这样,双击之后确实是擦除和烧录一起做了。真想给你送点东西,不知道怎么联系你
^_^
页:
[1]