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) 打赏
软件无法使用?点击查看常见问题说明>>

最近更新

Mineru PDF转markdown软件局域网版

对于有的电脑配置比较低或是win7系统等电脑无法使用Mineru情况,可以使用局域网内可运行软件的电脑运行Mineru,然后其它电脑或手机等终端输入IP地址,打开运行软件的IP地址来使用Mineru。 具体用法: 下载局域网版压缩包到本地电...

Studio One Pro 7免费开心版下载-诺瓦小站

Studio One Pro 7免费开心版下载

Studio One 7是一款专业数字音频工作站(DAW)软件,它是音乐制作、混音、母带处理与现场演出一体化的旗舰软件。 ✨ 核心功能 1. AI 智能音轨分离(Stem Separation) AI 驱动的音轨分离功能允许用户将混缩后的音...

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

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

支付宝扫一扫

微信扫一扫