首页
学习
活动
专区
圈层
工具
发布

msvc:BAT脚本判断是否设置MSVC编译的环境变量(执行vcvarsall.bat)

https://blog.csdn.net/10km/article/details/79998773 关于设置MSVC环境变量的方式参见我之前写一篇博客:《msvc交叉编译:使用vcvarsall.bat...如果你在CMD中反复执行vcvarsall.bat会导致环境变量存储空间溢出而出错。...所以写BAT脚本如果不判断是否设置了MSVC环境变量,而每次编译的时候都执行vcvarsall.bat,在同一个CMD下执行几次就会出错了,只能关闭当前的CMD,再重开一个。...这是个小毛病,但有时也蛮烦人的,所以就想有没有办法避免这个,能不能在脚本中判断MSVC环境变量是否已经设置。...通过阅读vcvarsall.bat的源码,找到了解决方案:vcvarsall.bat执行成功后会设置一个环境变量VisualStudioVersion来保存当前MSVC编译器的版本号。 ?

2K20

PHP错误实例详解错误级别配置项设置错误级别手动触发PHP错误自定义错误处理器脚本即将关闭前执行的函数

php 配置项 php.ini与错误相关的配置项: 选项 描述 error_reporting 设置错误报告的级别 display_errors 是否显示错误 log_errors 是否将错误记录到日志中...error_log 设置错误将存储到的文件路径 log_errors_max_len 设置log_errors的最大字节数 ingnore_repeated_errors 是否忽略重复的错误 ingore_repeated_source...是否忽略重复信息的来源 error_reporting = E_ALL & ~ E_NOTICE # 表示除了NOTICE之外的所有错误 设置错误级别 可通过以下三种方法修改 修改php.ini...settype($var, 'test'); md6('又来加密了'); // Fatal error不会被自定义的错误处理器接管 脚本即将关闭前执行的函数 有时,我们需要在php脚本关闭时进行一些操作...,此时可以用register_shutdown_function(),该函数能让php程序在意外终止时垂死挣扎完成最后的使命。

2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    python crontab 坑

    要解决这个问题只能是自己加载环境变量了,可以在shell脚本中添加source $HOME/.bash_profile,或者直接添加到crontab中。...0 12 * * * source $HOME/.bash_profile && $HOME/path/to/script > $HOME/log/file 2>&1 & 路径 我们在写脚本时往往会使用相对路径...,但是在crontab执行脚本时,由于工作目录不同,就会出现找不到文件或者目录不存在的问题。...(编码是utf-8),在shell中直接执行没有问题,但是crontab执行时出现了UnicodeEncodeError的错误,Google了一下发现这个问题不仅仅是在crontab中会出现,在使用管道或者重定向的时候都会出现这个问题...但是在使用管道或者重定向时,编码格式为ascii,Python会用ascii编码格式去encode输出的字符串,但是字符串的编码使用的时utf-8,所以会出现UnicodeEncodeError的错误。

    1.2K10

    深入探讨 npm run start 遇到 spawn EINVAL 时的含义与应对思路

    spawn 允许我们像在终端那样逐行执行命令,如果 spawn 的参数出现问题,或者命令路径没有找到,可执行文件名在当前系统不可用,也会报出类似 spawn EINVAL 的错误。...如果脚本要调用的工具并没有被正确安装,也会出现找不到可执行文件,从而引发 spawn EINVAL。某些情况下,操作系统的权限控制也会导致 spawn EINVAL。...解决方案之一是安装 Git Bash 或者在 Windows 下使用 WSL。如果使用 Git Bash,脚本需要写得更兼容一些,确保要执行的文件具备可执行权限并且路径正确。...既可以是脚本本身的路径或权限错误,也可能是操作系统环境变量有问题,还可能是与 Windows 或 Mac/Linux 不兼容的指令写法导致。...整合来看,这个错误信息包含了 spawn 调用参数无效或可执行文件找不到的含义,针对根因可以参照上面这些措施一一检查:先确认脚本的命令行能够在系统中手动执行,然后排除路径或权限问题,必要时升级或重装 Node.js

    1.5K10

    高效的Shell编程建议及入坑

    8)脚本文件路径 通常我们是直接用pwd以期获得脚本的路径,不过其实这样是不严谨的,pwd获得的是当前shell的执行路径,而不是当前脚本的执行路径。...11)脚本中有命令运行失败时/未声明变量时候退出脚本 如果脚本中某条命令运行失败,我们不应该让其继续运行,因为这样可能会影响脚本的其余部分,导致逻辑错误。...# 如果命令运行失败让脚本退出执行 set -o errexit # 或 set -e 如果脚本中使用到未声明的变量同样可能导致逻辑错误,可以用下面的命令设置脚本在使用到未声明的变量时退出执行: #...,比如 尽量使用func(){}来定义函数,而不是func{} 尽量使用[[]]来代替[],[]采用 , = 会出现以外的错误 尽量使用(())来代[[]]采用 = 会出现以外的错误.../usr/bin/env bash # 若命令失败让脚本退出 set -o errexit # 若未设置的变量被使用让脚本退出 set -o nounset URL=$1 DIRECTORY=$2

    1.3K10

    Shell脚本攻略01-简介终端打印

     获取、设置日期及延时  调试脚本  函数和参数  将命令序列的输出读入变量  以不按回车键的方式获取字符”n”  运行命令直至执行成功  字段分隔符和迭代器...注: 以root用户(管理员)的身份直接使用shell来执行任务可不是个好主意。因为如果shell具备较高的权限,命令中出现的输入错误有可能造成更严重的坏。...---- 授予脚本执行权限,将其变为可执行文件 要是有需要的话,可以利用shebang来实现脚本的独立运行。对此必须设置脚本的可执行权限,这样它就可以使用位于#!之后的解释器路径来运行了。...它识别出/bin/bash并在内部像这样执行该脚本: $ /bin/bash script.sh ---- 当启动shell时,它一开始会执行一组命令来定义诸如提示文本、颜色等各类设置。...注意,在每行格式字符串后都有一个换行符(\n) ---- 其他注意事项 使用echo和printf的命令选项时,要确保选项应该出现在命令行内所有字符串之前,否则Bash会将其视为另外一个字符串。

    3K20

    Bash: Command Not Found命令未找到

    并提出三种解决方法,包括:确定是否存在拼写错误,确保该命令已安装在你的系统上,使用apt,yum,dnf命令安装你需要的命令,检查可执行脚本路径是否正确,检查命令是否在PATH环境变量的路径中。...ipconfig -bash: command not found: ipconfig 有时,你的系统甚至找不到极其常见的命令。当你在Docker容器中运行Linux发行版时,通常会出现这种情况。...因此,解决方案是要么安装缺少的命令,要么找到一个可替代的工具,该工具可以获得你所需要的结果即可。 检查可执行脚本路径是否正确 这是Linux新手在运行shell脚本时常犯的错误。...但当你使用cd命令切换其它目录时,需要执行此命令,你必须指定该程序的可执行文件整个路径。 在这里,你可以使用PATH环境变量。...也许你已经知道Linux如何找到你要运行的命令。当Linux系统shell执行你指定的命令时。你要么在运行时提供相对路径或者绝对路径,要么命令所在目录的位置添加到PATH环境变量中。

    7.4K10

    Linux 学习记录 四(Bash 和 Shell scirpt).

    使用 env 和 export 可观察环境变量;set 可以观察目前 bash 环境下的所有变量 10、连续命令中 ; 可以让两个命令连续执行: && 前一个指令必须没有错误信息 || 如果正确就不执行第二条...错误接着执行第二条  11、编码问题:LANG 或者 是 LC_ALL设置; locale 列出当前语种。  ...变量内容的替换: ? 执行:  1、直接绝对路径和相对路径执行,执行者必须要有脚本的执行权限。...sh script 或者 bash script 都会使用一个新的bash环境来执行脚本中的命令,当子程序完成后,子程序完成后,在子程序内的各个变量或者动作将会结束而不会传回父程序中     source...函数 形参 也是用${1}、${2}、${3} 来传参,也就是说函数内的${1}/${2}/${3} 辨认的调函数时传进去的实参。而不是 执行脚本传递时的参数

    1.5K40

    crontab日常使用梳理

    ----------- 1)脚本语法错误 在crontab脚本没有定时执行的时候,首先需要检查脚本的语法有没有出现问题。...在手动执行任务时是在 当前shell环境下进行的,程序能够找到环境变量,而系统自动执行任务调度时,是不会加载任何环境变量的。因此,需要在shelll脚本中提供所有必要的路径和环境变量。...需要注意的主要有以下三点: -> 脚本中涉及文件路径时写全局路径; -> 脚本执行要用到java或其他环境变量时,通过source命令引入环境变量,如: #cat start_cbp.sh.../bin/run.sh -c mev & -> 当手动执行脚本OK,但是crontab死活不执行时,这时必须大胆怀疑是环境变量惹的祸,并可以尝试在crontab中直接引入环境变量解决问题。...# tail -f /var/spool/mail/root mail邮件一般只会记录脚本执行成功与否,如果执行失败,无法给出进一步的错误信息,这时需要我们将语句执行的错误信息重定向至文件中,这样可以很方便的查看错误信息

    1.6K80

    Linux 命令(230)—— set 命令(builtin)

    Shell 脚本时使用到未定义过的变量,则显示错误信息。...执行脚本的时候,如果遇到不存在的变量,Bash 默认忽略它。 #!/usr/bin/bash echo $a echo bar 上面代码中,$a 是一个不存在的变量。执行结果如下。...选项名 选项 说明 allexport -a 从这个选项中被设置开始就自动标明要输出的新变量或修改过的变量,直至选项被复位 braceexpand -B 打开花括号扩展,它是一个默认设置 emacs N...用来检查脚本的语法。交互式运行时不开启 noglob -d 禁止用路径名扩展。...即关闭通配符 notify -b 后台作业完成时通知用户 nounset -u 扩展一个未设置的变量时显示一个错误信息 onecmd -t 在读取和执行命令后退出 physical -P 设置时,在键入

    5.2K20

    踩坑无数!Linux命令直接跑和crontab定时跑,差别竟然这么大?

    假设你有个定时任务每分钟执行一次,但这个任务本身需要运行2分钟。那么第二次执行开始的时候,第一次还没结束,就会出现并发执行的情况。 如果脚本没有做并发控制,可能会导致资源竞争、数据不一致等问题。...但crontab执行的时候,如果没有设置LANG环境变量,可能会用ASCII编码,导致中文乱码或者脚本报错。.../bin/bash export LANG=zh_CN.UTF-8 export LC_ALL=zh_CN.UTF-8 我之前有个脚本要发送邮件通知,邮件内容包含中文。...写定时任务脚本的时候,尽量遵循这些原则: 1. 所有路径都用绝对路径,包括命令路径、文件路径 2. 在脚本开头明确设置环境变量,不依赖外部环境 3. 做好日志记录,包括正常输出和错误输出 4....加上执行锁,避免并发问题 5. 做好异常处理,脚本出错时要有明确的错误信息 6. 定期检查日志,及时发现问题 我现在写的定时任务脚本,基本都是这个模板: #!

    34410

    Shell编程从入门到放弃?别急,这份教程让你轻松上手!

    /bin/bash -x 还可以用bash -x script.sh来运行脚本,这样会显示每一步的执行过程。 错误处理 # 检查命令执行结果 if !...backup/ 良好的错误处理可以让脚本更加健壮,避免出现意外情况。.../bin/bash # 脚本说明:这是一个示例脚本 # 作者:张三 # 创建时间:2024-01-01 # 设置严格模式 set -euo pipefail # 全局变量使用大写 readonly...$name" # 输出:我的名字是张三 # 不加引号:可能会有问题 echo 我的名字是$name # 如果name包含空格就会出问题 路径问题 处理文件路径时要特别小心: # 不好的写法 cd...# 更安全的写法 cd /some/path || exit 1 rm -rf * # 或者使用绝对路径 rm -rf /some/path/* 数组和字符串混淆 # 定义数组时的常见错误 files

    69711

    Shell基本操作与命令

    $PS2  表示的二个系统提示符。 $PWD  表示当前工作路径。 $EDITOR 表示系统的默认编辑器名称。 $BASH  表示当前 Shell 的路径字符串。...err_msg} 表示如果变量 $var 已经设置,则返回该变量的值,否则将后面的 err_msg 输出到标准错误输出上。...6)$@ 传递给脚本或函数的所有参数。被双引号(" ")包含时,与 $* 稍有不同。"...7、调试 sh -nyour_script 不需要执行脚本只是检查语法的模式,返回所有语法错误。 sh -x strangescript 执行该脚本并显示所有变量的值。...BASH 的返回值可以用 return 语句来指定返回一个特定的整数,如果没有 return 语句显式的返回一个返回值,则返回值就是该函数最后一条语句执行的结果(一般为 0,如果执行失败返回错误码)。

    1.8K50

    Linux crond 不执行原因分析

    /mimvp-email.sh)是正常的,因为手动执行脚本可以默认获取Linux的环境变量,但通过Crontab做的定时任务,则无法获取环境变量。.... ~/.bash_profile 4、没有使用绝对路径 这里的绝对路径包括脚本中的路径和crond命令中的路径两个方面,例如: */10 * * * * sh /root/script/mysql_files_monitor.sh...-xn my.lock ls 只有当1返回后, 2的ls才会成功 如果某脚本要运行30分钟,可以在Crontab里把脚本间隔设为至少一小时来避免冲突。...只要未设置-s参数,此参数默认被设置   -u  --unlock     Remove a lock  #手动解锁,一般情况不必须,当FD关闭时,系统会自动解锁,此参数用于脚本命令一部分需要异步执行,...) 或者参见: LINUX - BASH Syntax Error 如果遇到路径错误 在 /var/spool/crontab/yanggang 中,添加了如下命令,在日志文件 /var/spool/mail

    7.8K110

    Shell脚本

    /bin/bash,它指定了执行脚本的解释器,通常是 bash。执行脚本时,内核会读取 shebang,并使用该解释器执行脚本。...shebang 指定的 shell 执行脚本:第一种方式,使用 sh 命令:sh script_file.sh第二种方式,通过相对路径或绝对路径:首先为脚本文件添加可执行权限chmod +x script_file.sh...通过相对或绝对路径,从终端执行脚本:....set -x 类似于调试模式,先打印正在执行的命令,然后显示命令的输出结果。set -e 当出现非零退出代码时,立即退出脚本。在使用管道命令时,例如 sdfdsf | echo 'vish'。...由于该行执行的最后一条命令是 echo,而 echo 返回的退出代码为零,因此整行命令被认为是成功的,但之前的命令 sdsds 将返回非零代码,这是错误的。要解决这个问题,我们可以使用下面的设置选项。

    1.2K10

    使用bash编写Linux shell脚本--调试和版本控制

    我的一个小程序报告没有错误,当我运行它时,黑白色的桌面上出现了竖条, 我的软盘被退出来了,计算机然后从新启动。...在这个示例中,脚本在 while 循环中含有一个错误的结果。使用 xtrace 你可以检查变量,看看 -ge 的两边是否变化,最后停止循环时, TOTAL 是否为零。...当调试陷阱和跟踪组合在一起,调试陷阱本身也在执行跟踪时被显示出来。这相当于使用 printf 命令,但是比较简练,它显示之前将变量的值替换掉变量名。...CVS 关键字可以加在脚本的任何位置,但是它们应该出现在注释或有引号的字符串中,这避免了关键字被认为是可执行的外壳命令。...n         -o nounset— 如果使用到的变量没有设置或不存在则终端执行返回错误。 n         -o xtrace— 在命令执行之前显示每一个命令。

    3.7K111

    直接执行成功,crontab却执行失败

    问题 写了一个汇总数据并且发送邮件的shell脚本(/tmp/email.sh),手工执行是成功的,但是通过crontab执行却总是失败。 shell脚本如下: #!...crontab执行发送失败的邮件如下: ? 分析 crontab执行发送的错误邮件,标题中文部分为乱码,怀疑是环境变量LANG不支持中文,于是来简单测试一下: #!.../bin/bash echo $LANG >> /tmp/test_out crontab定时执行输出结果为: [空] 直接执行输出结果为: en_US.UTF-8 解决 方案就很明确了,强制设置环境变量...知识点 不要假定crontab知道所需要的特殊环境变量,它其实并不知道。所以你要保证在shelll脚本中提供所有必要的路径和环境变量,除了一些自动设置的全局变量。...所以注意如下3点: 1)脚本中涉及文件路径时写全局路径; 2)脚本执行要用到java或其他环境变量时,通过source命令引入环境变量,如: cat start_cbp.sh #!

    4.9K20

    【Java报错已解决】error: subprocess-exited-with-error

    例如,如果要执行一个位于特定目录下的自定义脚本,但没有将该目录添加到PATH环境变量中,就会出现类似问题。...例如,在Shell脚本中,遗漏了关键的语法元素(如if语句没有fi结束符),或者在Python脚本中存在缩进错误、语法错误(如忘记冒号在if语句后)等,都会使子进程在执行脚本时无法正常运行。...1.3 解决思路 首先,检查被执行的命令或脚本本身是否存在问题,包括语法和路径。 确认环境变量的设置是否满足子进程的需求,同时排查资源和权限问题。...例如,如果要查找名为my_custom_script.sh的脚本,可以在其可能存在的目录下执行: find / -name "my_custom_script.sh" - **检查路径设置**:如果命令存在但无法执行...例如,如果脚本名为my_script.sh,可以在终端中执行: bash -n my_script.sh - **如果语法检查发现错误,根据提示修改脚本**。

    55200

    shell_正则_变量_tr_awk_sed_cut(1)

    文章目录 正则表达式 特殊字符含义 匹配规则组合 ifconfig的用法 执行脚本的几种方式(bash shell) vim配置文件自动设置脚本文件头 脚本调试 变量 shell语言的特点 强类型语言...[0-9] 执行脚本的几种方式(bash shell) 1.按照绝对路径执行(执行前脚本必须要有执行权限 chmod +x xx.sh) ..../xx.sh 2.bash 或 cat xx.sh|bash 3.将脚本放在 PATH环境变量对应的任意路径下直接运行(系统会直接在PATH的环境变量中找脚本) 注意 : echo $PATH # /...PATH环境变量对应的目录下 mv xx.sh /root/bin 直接执行脚本 xx.sh 第一次执行就按照PATH中的路径查找,一但找到就把路径hash到内存中了 >hash...脚本调试 1.命令错误 hostnam :命令继续向下执行 2.语法错误 syntax error :默认不会继续执行下去 脚本调试 bash -n file.sh 来检测脚本中的语法错误 bash

    1.5K20

    解决bash syntax error near unexpected token from

    解决bash syntax error near unexpected token from在编写Bash脚本时,如果遇到类似 ​​syntax error near unexpected token...本篇博客文章将介绍如何解决这个错误。原因分析该错误通常是因为在Bash脚本中存在语法错误或错误的引号使用方式导致的。以下是一些常见的可能原因:在脚本中使用了未正确闭合的引号。...比如,双引号或单引号没有正确的成对出现。bashCopy codeecho "Hello World!在上述示例中,双引号没有正确闭合,导致语法错误。 2. 在脚本中使用了非法的字符或符号。...最后,我们通过一个循环将每个文件的行数累加到 ​​total_lines​​ 变量中,并最终输出总行数。 请注意,示例代码中的路径 ​​./path/to/folder​​ 需要根据实际情况进行修改。...可编程性:Bash脚本支持变量、函数、循环、条件语句等基本编程特性,使得可以根据需要编写复杂的逻辑和算法。

    2.4K30
    领券