Windows的.bat文件和.cmd文件区别

.bat和.cmd都是Windows批处理文件,但它们有一些重要区别:

.bat文件

  • 起源于MS-DOS时代,是传统的批处理文件格式
  • 可在所有Windows版本上运行,兼容性更好
  • 在COMMAND.COM环境中执行
  • 功能相对基础

.cmd文件

  • Windows NT系列引入的批处理文件格式(Windows XP及以上)
  • 在CMD.EXE环境中执行
  • 提供更好的错误处理和环境变量扩展
  • 有更多高级功能和改进的命令处理

实际使用中的区别

  • 在现代Windows系统中(Windows 10/11),两者差异不大
  • .cmd文件在处理变量扩展和错误级别时更可靠
  • .cmd文件支持延迟环境变量扩展等高级特性

Windows PHP8.3 安装 imagick 扩展

从PECL中下载imagick扩展,需要注意对应的PHP版本,下载地址如下:

https://pecl.php.net/package/imagick/3.7.0/windows

然后把 php_imagick.dll 放到 PHP8.3 的扩展目录 ext 目录中。

然后把相关运行时文件放到PHP目录下,可以执行下面的命令一键复制过去:

copy CORE_RL_* E:\php\php-8.3.3-Win32-vs16-x64\
copy IM_MOD_* E:\php\php-8.3.3-Win32-vs16-x64\

注意:E:\php\php-8.3.3-Win32-vs16-x64\ 是我电脑上的PHP8.3路径,需要替换为你自己的PHP存放路径。

Windows 批处理脚本脚本连接mariadb时,配置数据库字符集

在通过命令行执行数据库脚本时,遇到错误:Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (gbk_chinese_ci,COERCIBLE) for operation '='

解决办法:

可以通过 --default-character-set=utf8mb4 参数来配置连接所用的默认字符集来解决,例如下面的数据库升级脚本:

@echo off
"C:\Program Files\MariaDB 10.6\bin\mysql" -uroot -p123456 -Dworksummarynet --default-character-set=utf8mb4 < ./upgrade.sql

echo Database upgrade completed!
pause

Windows10安装Composer

在我的win10上用exe安装一直安装不上,使用命令行安装的过程如下:

下载安装脚本到当前目录

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

执行安装过程

php composer-setup.php

删除安装脚本

php -r "unlink('composer-setup.php');"

Apache在Windows上作为服务运行

安装服务: httpd -k install  

被安装的服务名称是 Apache2.2 ,使用的配置文件是conf\httpd.conf

httpd -k install -n  "service name"  #如果想指定服务名称,请采用该命令
httpd -k start #启动apache服务
httpd -k stop 或 httpd -k shutdown #停止apache服务
httpd -k restart #重启apahce服务

启动前,你可以通过 httpd -n "service name" -t 检查配置文件的正确性

如果采用默认的服务名,那么默认的命令就是: httpd -t

删除服务:

httpd -k uninstall #删除默认的服务名
httpd -k uninstall -n "service name" #删除指定的文件名

Windows安装自己开发的.NET Windows服务全攻略

在日常开发中,我们经常会遇到需要将.NET应用程序注册为Windows服务的场景。本文将手把手教你如何通过InstallUtil工具完成服务的安装与卸载,并附赠避坑指南。(搓手期待脸)

一、准备工作

在开始操作前,请确认以下三点:

  1. 已安装对应版本的.NET Framework(示例使用v4.0.30319)
  2. 服务程序myservice.exe已生成且经过测试
  3. 建议将服务文件存放在非系统目录(如D:\MyServices\)

💡小贴士:右键点击解决方案生成时,记得选”Release”模式哦~

二、详细安装步骤

第一步:启动管理员命令行

按住Win + X键,在弹出菜单中选择【Windows Terminal(管理员)】,就像开启魔法权限一样~

第二步:执行安装咒语

%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\installutil.exe C:\Windows\service\myservice.exe

当看到这两句魔法生效提示时,说明安装成功啦:

正在提交安装阶段...

安装已成功完成。

三、验证服务安装

方法1:可视化检查

按下Win + R输入services.msc,在服务列表里找找你的服务名称,就像在人群中找老朋友一样~

方法2:命令行确认

sc query myservice

看到STATE显示为STOPPED就说明服务已经在乖乖待命啦!


四、卸载服务指南

当需要更新服务时,先来段优雅的卸载舞蹈:

%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\installutil.exe /u C:\Windows\service\myservice.exe

成功时会收到这样的友好通知:

正在开始卸载的安装阶段...
卸载已成功完成。

五、避坑宝典

  1. ​权限不足:看到”拒绝访问”提示?请检查是否以管理员身份运行CMD
  2. ​路径陷阱:若出现”找不到文件”,请检查路径中的空格是否用双引号包裹
  3. ​依赖缺失:安装失败时记得检查是否缺少.dll文件
  4. ​版本迷思:使用.NET Core开发的服务请改用sc create命令

六、知识扩展

对于使用新版本.NET的同学,可以试试这个现代咒语:

sc create "myservice" binPath="D:\Services\myservice.exe"

希望这篇指南能像贴心助手一样,帮你顺利完成服务部署。如果在实践中遇到任何魔法失灵的情况,欢迎在评论区召唤技术支持哦!(ง •̀_•́)ง