Mac 打开连接目录提示:不能完成此操作,因为找不到*的原始项目

最近创建连接目录,提示[b]不能完成此操作,因为找不到*的原始项目[/b],后来发现,是路径问题。[color=red][b]用ln命令创建连接文件或目录的时候,路径一定要用全路径。[/b][/color]
[MySQL Workbench:username]$ln -s /Users/username/Develop/MySQLWorkbench.app/ /Applications/MySQLWorkbench.app
``` @echo off :begin echo ***************************************************************************** echo ** ** echo ** 注意:请将设备【WiFi打开】【蓝牙关闭】,写号前将设备通过USB连接至电脑 ** echo ** 注意:请按照蓝牙Mac地址在前,WiFi Mac地址在后的顺序录入 ** echo ** ** echo ***************************************************************************** echo. :: set /p arr=请顺序输入蓝牙Mac地址和WiFi Mac地址,以空格隔开: :: for /f "tokens=1,2,3,4,5,6,7,8,9,10,11,12 delims= " %%a in ("%arr%") do ( :: set num1=%%a :: set num2=%%b :: set num3=%%c :: set num4=%%d :: set num5=%%e :: set num6=%%f :: set num7=%%g :: set num8=%%h :: set num9=%%i :: set num10=%%j :: set num11=%%k :: set num12=%%l :: ) :: 此方案不需要工厂标签二维码有特殊格式,顺序输入即可。eg:112233445566aabbccddeeff set /p arr=请顺序输入蓝牙Mac地址和WiFi Mac地址: set num1=%arr:~0,2% set num2=%arr:~2,2% set num3=%arr:~4,2% set num4=%arr:~6,2% set num5=%arr:~8,2% set num6=%arr:~10,2% set num7=%arr:~12,2% set num8=%arr:~14,2% set num9=%arr:~16,2% set num10=%arr:~18,2% set num11=%arr:~20,2% set num12=%arr:~22,2% echo adb root adb root :: 打开WiFi、关闭BT adb shell svc wifi enable adb shell svc bluetooth disable :: 预留开关响应时间2s timeout /t 2 /nobreak >nul echo ***************************************************************************** echo ** ** echo ** 开始写入蓝牙地址 : %num1% %num2% %num3% %num4% %num5% %num6% ** echo ** ** echo ***************************************************************************** adb shell wifitest -O adb shell wifitest -E 0x138 adb shell wifitest -e 0x138 -v 0x67 adb shell wifitest -e 0x139 -v %num1% adb shell wifitest -e 0x13A -v %num2% adb shell wifitest -e 0x13B -v %num3% adb shell wifitest -e 0x13C -v %num4% adb shell wifitest -e 0x13D -v %num5% adb shell wifitest -e 0x13E -v %num6% :: boots 方案回显有较多的fail,影响产线判断先不用,待产线测试wifitest的稳定性再决定是否启用 :: 目前遇到的问题是单独操作boots可以写成功,但是放在bat顺序执行会概率性执行不下去。 :: adb shell boots -c efuse -r -a 0x138 :: adb shell boots -c efuse -w -a 0x138 -v 0x67 :: adb shell boots -c efuse -w -a 0x139 -v %num1% >nul :: adb shell boots -c efuse -w -a 0x13A -v %num2% >nul :: adb shell boots -c efuse -w -a 0x13B -v %num3% >nul :: adb shell boots -c efuse -w -a 0x13C -v %num4% >nul :: adb shell boots -c efuse -w -a 0x13D -v %num5% >nul :: adb shell boots -c efuse -w -a 0x13E -v %num6% >nul echo ***************************************************************************** echo ** ** echo ** 开始写入WiFi地址 : %num7% %num8% %num9% %num10% %num11% %num12% ** echo ** ** echo ***************************************************************************** :: adb shell wifitest -O adb shell wifitest -e 4 -v %num7% adb shell wifitest -e 5 -v %num8% adb shell wifitest -e 6 -v %num9% adb shell wifitest -e 7 -v %num10% adb shell wifitest -e 8 -v %num11% adb shell wifitest -e 9 -v %num12% echo 设备重启 adb reboot pause goto begin :: adb shell wifitest -e 4 -v 0xec :: adb shell wifitest -e 5 -v 0x20 :: adb shell wifitest -e 6 -v 0x14 :: adb shell wifitest -e 7 -v 0x05 :: adb shell wifitest -e 8 -v 0x11 :: adb shell wifitest -e 9 -v 0x17 :: goto begin```帮我优化下这个代码
最新发布
03-20
以下是针对您提供的批处理脚本的优化版本及详细解释: ### 优化点说明: 1. **减少冗余代码**:删除注释掉的部分,避免无意义的操作。 2. **增强可读性和维护性**:通过函数封装和变量简化复杂逻辑。 3. **错误检测机制**:增加对用户输入的有效性检查,防止非法数据导致程序异常。 --- ### 优化后的代码 ```batch @echo off setlocal enabledelayedexpansion :main_menu cls echo ***************************************************************************** echo ** ** echo ** 注意:请将设备【WiFi打开】【蓝牙关闭】 ** echo ** 写号前将设备通过USB连接至电脑 ** echo ** ** echo ** 输入规则:按蓝牙Mac地址在前、WiFi Mac地址在后的顺序录入 ** echo ** 示例:aa bb cc dd ee ff gg hh ii jj kk ll ** echo ** ** echo ***************************************************************************** :: 获取用户输入并验证有效性 set /p mac_input="请输入蓝牙Mac地址和WiFi Mac地址 (共12组两位十六进制数): " call :validate_mac_input "%mac_input%" if errorlevel 1 ( echo 输入无效,请确保格式正确! pause goto main_menu ) :: 分割输入字符串到数组 set index=0 for %%i in (%mac_input%) do ( set "num[!index!]=%%i" set /a index+=1 ) :: 检查分割结果是否完整 if !index! LSS 12 ( echo 输入的数据不足12部分,请重新输入! pause goto main_menu ) :: 启动ADB命令序列 call :execute_adb_commands goto end_program :validate_mac_input :: 验证输入长度以及内容合法性 set input=%~1 if not defined input exit /b 1 set count=0 for %%i in (%input%) do ( set /a count+=1 ) if %count% neq 12 exit /b 1 exit /b 0 :execute_adb_commands :: ADB初始化步骤 echo 初始化ADB... adb root adb shell svc wifi enable adb shell svc bluetooth disable timeout /t 2 /nobreak > nul :: 写入蓝牙MAC地址 echo 写入蓝牙地址: %num[0]% %num[1]% ... %num[5]% adb shell wifitest -O adb shell wifitest -E 0x138 adb shell wifitest -e 0x138 -v 0x67 for /L %%i in (9,1,14) do ( adb shell wifitest -e 0x13%%i -v !num[%%i-9]! ) :: 写入WiFi MAC地址 echo 写入WiFi地址: %num[6]% %num[7]% ... %num[11]% for /L %%i in (4,1,9) do ( if %%i leq 9 ( adb shell wifitest -e %%i -v !num[%%i+2]! ) ) :: 最终重启设备 echo 设备正在重启... adb reboot pause exit /b :end_program endlocal ``` --- ### 改进特点解析 #### 1. 用户输入校验 (`:validate_mac_input`) - 确保用户输入了恰好12个合法的两位十六进制值。 - 如果不符合条件,则提示用户重新输入。 #### 2. 数字拆分存储 (`set num[index]`) - 使用动态索引来保存每个数字片段,方便后续引用。 - 提高代码灵活性,便于扩展功能(如支持更多字段)。 #### 3. 循环替代重复指令 - 原始脚本中多次出现`adb shell wifitest...`类似结构,现在统一放到循环内完成。 - 减少了大量重复代码行,并增强了适应未来修改的能力。 #### 4. 错误预防设计 - 加强边界情况考虑,例如当用户未提供足够信息时直接终止当前流程返回主菜单界面等待修正后再试一次;如果中途发生网络中断等情况也能及时反馈给使用者以便采取补救措施。 --- ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值