AI软件下载
有趣网站推荐及实用软件下载

.bat脚本启动时检测当前软件路径是否包含空格和特殊字符

Python等一些语言开发的应用如果运行路径中包含空格或特殊字符的话,会引发报错,软件功能无法正常实现,如果用.bat脚本启动的话,可以用下面代码检测当前运行路径中是否有空格及特殊字符,参考代码如下:

@echo off
:: 1. 强制使用 UTF-8,并隐藏输出,避免吞换行 Bug
chcp 65001 >nul

:: 2. 【关键】关闭延迟扩展!避免路径或正则里的感叹号 (!) 被 CMD 吃掉
setlocal DisableDelayedExpansion

:: 定义当前路径变量
set "CURRENT_DIR=%~dp0"

:: 3. 使用 PowerShell 进行静默检测
:: 【关键】加入 -NoProfile 和 <nul 规避 chcp 65001 环境下 PowerShell 初始化的底层崩溃 Bug
:: 【关键】因为关闭了延迟扩展,正则里的符号恢复为 [&()^!] 即可,无需写成 ^^!
powershell -NoProfile -ExecutionPolicy Bypass -Command "$p = $env:CURRENT_DIR; if($p -match ' '){exit 10} elseif($p -match '[&()^!]'){exit 11} elseif($p -match '[^\x00-\x7F]'){exit 12} else {exit 0}" <nul

set CHECK_RESULT=%errorlevel%

:: 4. 根据结果判断
if %CHECK_RESULT% equ 0 goto :START_APP
if %CHECK_RESULT% equ 10 set "ERR_MSG=路径中包含 [空格]"
if %CHECK_RESULT% equ 11 set "ERR_MSG=路径中包含 [特殊字符] (如 & ( ) ^ !)"
if %CHECK_RESULT% equ 12 set "ERR_MSG=路径中包含 [中文字符]"

:: 如果 PowerShell 意外崩溃返回了其他错误码,捕获它避免原因显示为空白
if not defined ERR_MSG set "ERR_MSG=环境检查组件执行异常 (错误码: %CHECK_RESULT%)"

:SHOW_ERROR
:: 弹窗提示 (同样加上参数防止弹窗组件在后台崩溃)
powershell -NoProfile -ExecutionPolicy Bypass -Command "Add-Type -AssemblyName PresentationFramework; $msg = \"错误:程序无法启动!`n`n原因:$env:ERR_MSG`n路径:$env:CURRENT_DIR`n`n请将程序移动到不含空格/中文/符号的纯英文路径再运行。\";[System.Windows.MessageBox]::Show($msg, '运行环境检查', 'OK', 'Error')" <nul
exit /b

:START_APP
:: 5. 检查通过,运行原始逻辑
echo [INFO] 路径检查通过,正在启动 Python...
cd /d "%~dp0"
py310\python.exe app.py
pause

AI软件用不了?2元爽玩4090: 立即体验>>

热门大语言模型API免费体验: 立即获取>>

软件催更及1对1人工答疑支持: https://nuowa.net/1806
赞(0) 打赏
软件无法使用?点击查看常见问题说明>>

最近更新

FunASR语音识别转文字软件区分说话人版-诺瓦小站

FunASR语音识别转文字软件区分说话人版

FunASR是一款优秀的基础语音识别框架,配合阿里通义团队开发的其它语音识别模型,能够实现非常好语音转文字效果,尤其在中文语音识别方面,鉴于有些用户需要对语音识别内容区分说话人,我重新做了一版区分说话人的版本。软件支持多语言识别,但是还是尽...

觉得文章对你有帮助就打赏一下作者

非常感谢你的打赏,我将有更多的动力继续提供优质内容,让我们一起创建更加美好的世界!

支付宝扫一扫

微信扫一扫