• [技术干货] 怎么解决刷卡或扫码后,点击软件输入框,win10屏幕键盘不会自动弹出的问题
    在Windows 10环境中,WPF应用有时可能会遇到屏幕键盘无法自动弹出的问题,尤其是在添加了外部输入设备(如扫码头或刷卡器)后。这个问题的发生可能是由于焦点管理或系统输入法状态被这些外部设备打乱引起的。下面是一些可能的解决方案:1. 强制显示屏幕键盘可以通过代码强制调用屏幕键盘。在WPF应用中,当需要显示屏幕键盘时,可以使用以下代码:using System.Diagnostics; private void ShowTouchKeyboard() { Process.Start(@"C:\Program Files\Common Files\Microsoft Shared\Ink\TabTip.exe"); }你可以在点击输入框时调用这个方法,以确保屏幕键盘弹出。例如,可以订阅输入框的GotFocus事件:private void TextBox_GotFocus(object sender, RoutedEventArgs e) { ShowTouchKeyboard(); }2. 检查设备影响如果问题是由扫描头或刷卡器引起的,可以尝试以下步骤:设备驱动更新:确保所有外部设备的驱动程序都是最新的。设备配置检查:检查外部设备的配置,看看是否提供了选项来避免干扰系统输入法。3. 使用 Windows 触摸服务确保与触摸和输入相关的服务在Windows 10上正确运行,例如“Touch Keyboard and Handwriting Panel Service”。4. 设置 WPF 应用为触摸优先您可以将WPF应用设置为触摸优先,确保输入焦点在触摸交互时始终正确处理。可以在App.xaml.cs中设置:protected override void OnStartup(StartupEventArgs e) { base.OnStartup(e); // 设置应用为触摸优先 if (Tablet.TabletDevices.Count > 0) { Tablet.TabletDevices.First().CaptureMode = CaptureMode.None; } }5. 重新设置输入焦点当发现屏幕键盘不会自动弹出时,可以尝试在点击输入框时强制设置输入焦点。可以在输入框的GotFocus事件中加入以下代码:private void TextBox_GotFocus(object sender, RoutedEventArgs e) { var textBox = sender as TextBox; if (textBox != null && !textBox.IsKeyboardFocused) { textBox.Focus(); ShowTouchKeyboard(); } }综合示例综合以上方法,你可以这样调整你的WPF应用:using System; using System.Diagnostics; using System.Linq; using System.Windows; namespace YourNamespace { public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); this.Loaded += MainWindow_Loaded; } private void MainWindow_Loaded(object sender, RoutedEventArgs e) { if (Tablet.TabletDevices.Count > 0) { Tablet.TabletDevices.First().CaptureMode = CaptureMode.None; } } private void TextBox_GotFocus(object sender, RoutedEventArgs e) { var textBox = sender as TextBox; if (textBox != null && !textBox.IsKeyboardFocused) { textBox.Focus(); ShowTouchKeyboard(); } } private void ShowTouchKeyboard() { Process.Start(@"C:\Program Files\Common Files\Microsoft Shared\Ink\TabTip.exe"); } } }结论通过上述方法,你应该能够提高WPF应用中触摸输入框的可靠性,确保屏幕键盘在需要时能够正常弹出。如果问题依然存在,可能需要更深入的调试,包括检查外部输入设备与操作系统之间的交互。
  • [技术干货] Window下SRS服务器的搭建-转载
                                                                           ---2023.7.23 准备材料 srs下载:GitHub - ossrs/srs at 3.0release 目前srs release到5.0版本。  srs官方文档:Introduction | SRS (ossrs.net)  Docker下载:Download Docker Desktop | Docker 进入docker官网选择window版本直接下载。由于srs无法直接部署在Window中,因此需要使用docker容器。  搭建步骤 2.1 安装docker Docker 并非是一个通用的容器工具,它依赖于已存在并运行的 Linux 内核环境。  Docker 实质上是在已经运行的 Linux 下制造了一个隔离的文件环境,因此它执行的效率几乎等同于所部署的 Linux 主机。  在安装docker之前先要打开window的虚拟机。  2.2.1 安装 Hyper-V Hyper-V 是微软开发的虚拟机,类似于 VMWare 或 VirtualBox,仅适用于 Windows 10。这是 Docker Desktop for Windows 所使用的虚拟机。  但是,这个虚拟机一旦启用,QEMU、VirtualBox 或 VMWare Workstation 15 及以下版本将无法使用!如果你必须在电脑上使用其他虚拟机(例如开发 Android 应用必须使用的模拟器),请不要使用 Hyper-V!  1、开启 Hyper-V  1)鼠标移动到window图标上,有机鼠标右键。点击选择“应用和功能”。   2)下拉弹出框右边的滑动条到最底下,点击“程序和功能”。  3)点击“启动或者关闭window功能”   4)勾选Hyper-V   至此Hyper-v打开完成,启动可以使用命令也可以点击鼠标右键启动。  启动命令如下:  Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All 2.2.2 安装docker 双击下载的 Docker for Windows Installer 安装文件,一路 Next,点击 Finish 完成安装。  在cmd中输入docker出现docker 命令格式则说明安装成功了。   2.2、编译安装srs服务器 1、启动window中的cmd控制台窗口。  2、启动docker并映射srs文件的命令。  docker run -it --name=srs -v /G/srs:/tmp/srs -w /tmp/srs/trunk -p 1935:1935  -p 1985:1985 -p 8080:8080 -p 8085:8085 registry.cn-hangzhou.aliyuncs.com/ossrs/srs:dev bash 这个命令我是链接的G:\srs\路径。  这里不能使用pwd和window的路径格式。例如G:\srs要修改为/G/srs。  执行完成之后,执行ls命令,出现srs的文件结构就说明映射成功了。   3、docker启动映射成功之后执行./configure。  此处可能出现问题:   bad interpreter: No such file or directory 解决方法如下:  vi configure   :set ff :set fileformat=unix :wq 4、修改问题之后继续执行 ./configure。出现如下界面说明./configure执行成功。    5、 执行make命令。出现如下界面说明make成功了。   6、执行 ./objs/srs -c conf/srs.conf命令启动srs服务。出现如下界面说明启动成功了。   至此,srs服务启动成功。  SRS测试使用方法 一、ffmpeg推拉流测试  1、使用ffmpeg命令推流  ffmpeg -re -i C:\Users\admin\Desktop\ship\pasf2.flv -vcodec copy -acodec copy -f flv -y rtmp://192.168.10.103/live/livestream 以上命令中的ip地址是服务器所在的window系统的ip地址。  使用ffmpeg命令拉流 ffplay rtmp:///live/livestream 二、WebRTC推拉流  1、使用ffmpeg命令推流  ffmpeg -re -i C:\Users\admin\Desktop\ship\pasf2.flv -vcodec copy -acodec copy -f flv -y rtmp://192.168.10.103/live/livestream 以上命令中的ip地址是服务器所在的window系统的ip地址。  2、使用WebRTC拉流  推送流成功之后,使⽤srs⾃带的rtc_player播放器进⾏播放,直接请求srs服务的8080端⼝即可。  在浏览器中输入如下网址:  http://192.168.10.103:8080/players/srs_player.html 三、VLC推拉流  四、docker命令  1、查看decker中运行的容器  docker ps -a 2、 获取容器/镜像的元数据  docker inspect [OPTIONS] NAME|ID docker inspect registry.cn-hangzhou.aliyuncs.com/ossrs/srs:dev 3、连接到正在运行中的容器  docker attach [OPTIONS] CONTAINER 问题:Error response from daemon: No such container: registry.cn-hangzhou.aliyuncs.com/ossrs/srs:dev   解决办法:出现此问题的原因是由于docker容器没有启动,需要启动docker容器。   链接命令:docker attach 39031b94cb0e 4、启动docker容器  docker start 39031b94cb0e 5、停止docker容器  docker stop 39031b94cb0e 6、直接关闭容器  docker kill 容器ID或容器名 7、重启docker容器  docker restart 容器ID或容器名 五、srs命令  1、指定配置文件,即可启动srs  ./objs/srs -c conf/srs.conf 2、启动srs  ./etc/init.d/srs start 3、查看SRS状态  ./etc/init.d/srs status 4、停止SRS  ./etc/init.d/srs stop 5、重启SRS  ./etc/init.d/srs restart 6、Reload SRS  ./etc/init.d/srs reload ————————————————                              版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。                          原文链接:https://blog.csdn.net/qq_43812868/article/details/134141219 
  • [技术干货] 2024年2月人工智能问题总结合集
    二月问题总结如下:【1】在ECS windows部署Llama2 尝试使用MLC运行,但出现以下报错,求助cid:link_0【2】atlas300P3 在容器中访问rtsp流地址报错No route to host cid:link_1【3】ECS上面,我看机器学习推荐的只有N卡,想问下华为自己的显卡在ModelArts那边不是能用,为啥还没上ECS cid:link_2【4】昇腾310(Ascend 310)能不能用来搭建stable diffusecid:link_3【5】 acl init failed, errorCode = 100039cid:link_4
  • [技术干货] OpenResty windows安装教程
    1 什么是OpenRestyOpenResty是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。简单地说OpenResty 的目标是让你的Web服务直接跑在 Nginx 服务内部,充分利用 Nginx 的非阻塞 I/O 模型,不仅仅对 HTTP 客户端请求,甚至于对远程后端诸如 MySQL、PostgreSQL、Memcached 以及 Redis 等都进行一致的高性能响应。2 OpenResty安装·下载地址 http://openresty.org/cn/download.html选择符合自己电脑的安装包下载完成后,选择安装目录(建议非中文)进行解压双击nginx.exe运行即可测试:打开浏览器访问 localhost:80
  • [分享交流] 鸿蒙PC系统能否成为Windows的真正竞争者?
    在不久的将来,鸿蒙PC系统能否成为Windows的真正竞争者?
  • [问题求助] 建议增加 Scoop 镜像
    Scoop是一个强大的Windows软件包管理器,在Windows用户中相当受欢迎。它旨在简化和加速在Windows操作系统上的软件安装和管理。通过命令行操作,用户可以轻松地搜索、安装、更新和卸载各种应用程序,而无需手动浏览官方网站或执行繁琐的安装步骤。Scoop的重要性在于为用户提供了一种便捷的方式,使其能够快速、一致地配置其开发环境或安装常用工具,提高了Windows系统上软件管理的效率和灵活性。建议增加 Scoop 镜像。
  • [技术干货] 如何查看自己的操作系统是否支持 64 位架构
    可以按照以下步骤来检查自己的操作系统是否支持 64 位架构: 1:打开"此电脑"或"我的电脑"等文件资源管理器; 2:右键单击计算机图标或界面空白处,选择属性选项; 3:在弹出的窗口中,可以看到基本信息部分,其中有一个 “系统类型” 的栏目,如果显示 "64 位操作系统",则表示你的操作系统支持 64 位架构;如果显示 "32 位操作系统",则表示你的操作系统只支持 32 位架构。 
  • [技术干货] 无人值守执行器的连接器RDP附加参数说明指导
    1、背景23.3版本管理中心新特性增加了支持连接器参数配置,当任务使用无人值守执行器运行时,支持对无人值守执行器的连接器参数进行配置:RDP窗口全屏显示RDP桌面缩放比RDP附加参数2、参数说明RDP附件参数官方列举的见右边链接:https://github.com/awakecoding/FreeRDP-Manuals/blob/master/User/FreeRDP-User-Manual.markdown如果要导出完整的参数信息,按以下步骤操作:①进入无人值守连接器rdp目录连接器安装目录\agent\freerdp (连机器版本是3.0.0及以上版本为该目录)连接器安装目录\agent\wfreerdp (连接器版本是3.0.0以下版本为该目录)②在以上目录输入cmd打开命令行窗口,然后输入命令:wfreerdp.exe /help > help.txt 就可以把包含完整参数信息的help.txt导出到rdp目录下。注意事项:1. 关闭RDP窗口全屏显示后可以设置窗口分辨率的宽、高2. 23.3管理中心配置的RDP连接参数只有在3.2.0及以上版本的连接器上才能生效
  • [技术干货] 【Windows】六种正确清理C盘的方法,解决你的红色烦恼-转载
     前言 Windows操作系统一般是安装在磁盘驱动器的C盘中,运行时会产生许多垃圾文件,C盘空间在一定程度上会越来越小。 伴随着电脑工作的时间越久,C盘常常会提示显示其内存已不足。 C盘容量不足将会极大影响系统的运行速度,电脑会变卡、死机。 释放磁盘空间可以提高计算机的性能。那么,如何正确清理C盘呢?  清理方法 1. 利用Windows自己附带的磁盘清理工具 1.鼠标右击【C盘】选择【属性】。  2.右击【磁盘清理】。  3.勾选需要清理的文件,点击【清理系统文件】,清理完成后,点击【确定】即可。   2. 开启自动清理 开启自动清理后,Windows可以通过删除不需要的文件自动释放空间。  进入【设置】—【系统】—【存储】—将【存储感知】设置为【开】,电脑就会自动清理。   3. 通过“配置存储感知或立即运行”来清理 进入【设置】—【系统】—【存储】—【配置存储感知或立即运行】  点击【立即清理】  4. 管理C盘中的程序 进入【设置】—【系统】—【存储】—【应用和功能】  进入以后,我们把【筛选条件】设置成【window10 C:】  3. 通过卸载C盘下的一些不必要软件,可以进一步释放C盘空间。 如果遇到自己不认识的软件可以百度:xxx可以卸载吗?这样就可以避免误卸载掉一些有用的软件。  5. 系统文件夹转移 . 进入【设置】—【系统】—【存储】—【更多存储设置】—【更改新内容保存位置】—【选择别的盘符】— 点击【应用】  6. 将C盘现有内容转移到别的盘 手动转移:打开【此电脑】我们可以看到【文档】、【下载】、【桌面】等文件夹。它们目前默认的路径都是C盘。  右键【桌面】— 选择【属性】  【位置】— 【移动】— 【选择一个别的盘的路径】 最好提前在其他盘中建一个同名的文件夹,如Desktop,移进去就好。  ———————————————— 版权声明:本文为CSDN博主「想变厉害的大白菜」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/weixin_44211968/article/details/120129476 
  • [区域初赛赛题问题] windows下判题器使用出错
    windows下判题器报错,这个怎么解决呀
  • [区域初赛赛题问题] windows下bat脚本问题
    windows下bat和其他demo都只输出这一行,不知道是哪的问题
  • [技术干货] 如何用Python让你的电脑说话-转载
     如何用Python让你的电脑说话 你成为亿万花花公子的第一步  如果你是像《钢铁侠》这样的电影的粉丝,你可能已经幻想过得到你自己的贾维斯。那么,在这篇文章中,我将告诉你如何开始制作你自己的电脑助手。我们将通过一个小的编程和一些聪明的python包在引擎盖下进行数据科学。  现在,制作像超级智能人工智能这样复杂的东西是很难的,对于我来说,在一篇文章中甚至很可能在一般情况下都很难做到。然而,我们可以做的是把这个问题分解成更小的部分,使问题看起来更容易。这是你在每一个项目中都应该做的事情,这样就不会一下子被其所有的复杂性所困住了。  从我对这个问题的简单思考来看,我相信我们可以把一个超级智能的人工智能助手分成四个主要部分。  文本到语音(以获得回应) 语音转文字(用于询问事情) 一些计算,以了解我们的问题并创建一个响应 将回应变成现实世界中的行动 在今天的文章中,我将专注于计算机助手的文本到语音方面,让我们的计算机与我们交谈。如果一切顺利的话,我将在今后的文章中继续发展,使我们的助手变得更加复杂和有用。  找到一个文本到语音库 现在,用python做这样的事情有一个巨大的好处,那就是我们有大量的库可以使用,以快速完成事情。毕竟,如果我们从头开始开发其中的每一个部分,我们会在这里呆很久,以至于我们永远不会完成任何事情。让我们站在巨人的肩膀上,使用python软件包。  对于文本到语音来说,有几个Python包在人群中脱颖而出。  谷歌文本转语音(gTTs),以及 pyttsx3(我不知道那到底代表什么)。 谷歌文本转语音是一个Python库,用于连接谷歌翻译的文本转语音API。它具有谷歌自己的文本到语音应用程序的性能,但需要互联网连接才能使用。  另一方面,pyttsx3是一个文本到语音的转换库,它寻找预装在你的平台上的文本到语音引擎并使用它们。因此,它可以离线工作。  以下是它在主要操作系统上使用的文本转语音引擎。  Windows上的SAPI5 2. MacOSX上的NSSpeechSynthesizer  3.其他所有平台上的espeak  看看这两个,我不希望我的助手依赖谷歌或在线连接来工作。我更愿意使用pyttsx3,让一切都在我自己的机器上运行。  设置项目 现在,在我们开始运行一切之前,让我们设置我们的项目。  我们将通过文本编辑器和终端来完成一切。如果你不知道这意味着什么,那么我向人们推荐的文本编辑器是vscode,而终端通常内置在你的文本编辑器中(如vscode),或者是你电脑上的一个叫做 "终端 "或 "cmd "的程序。  现在,我想让你打开你的终端,改变目录到你保存项目的地方,例如,用  cd ~/projects 1 接下来,我们将需要创建一个目录来存储我们的项目。这完全取决于你,但我希望我的助手叫罗伯特。因此,我将创建一个名为 "robert "的新目录,然后用以下方式进入该目录  mkdir robert cd robert 1 你可以把这个名字改成你喜欢的样子,比如说Brandy或者Kumar之类的。  接下来,我们需要让python启动并运行。为此,我们将需要安装Python 3。如果你没有安装,请参阅https://www.python.org/,了解安装说明。我们还需要创建一个Python虚拟环境。如果你想了解更多这方面的信息,请看这里,我最近的一篇文章。  假设你已经安装了Python,你可以在终端用以下方法验证  python3 --version 1 现在你应该能够在你的robert目录下创建你的python虚拟环境了。  python3 -m venv venv 1 注意,如果你安装的python的版本是python,python3.7或者python3.9或者其他的,那么就使用这个版本。  然后你应该能够用以下方法激活你的虚拟环境。  (在MacOS和Linux上)  source venv/bin/activate 或 (Windows)  venv/Scripts/activate 1 现在我们需要安装我们需要的软件包。为了做到这一点,我们将创建一个requirements.txt文件。进入你最喜欢的文本编辑器,例如vscode,或者,如果你很冒险的话,vim,打开你的 "robert "文件夹,现在创建这个文件。  对于我们的项目,到目前为止,我们只需要pyttsx3。很简单。让我们现在把它添加到我们的requirements.txt文件中,如下所示  接下来,让我们用pip来安装我们的需求  pip install -r requirements.txt 1 使用pyttsx3  现在一切都安装好了,让我们开始使用pyttsx3。为了了解该怎么做,我查看了这里的文档。  然后,你可以通过创建一个名为speech.py的文件并添加以下代码来制作一个漂亮的例子。  import pyttsx3  engine = pyttsx3.init()  voice_num = 2 text_to_say = "Hello World! I am Robert!"  voices = engine.getProperty('voices') engine.setProperty('voice', voices[voice_num].id)  engine.say(text_to_say) engine.runAndWait() 1 我们首先导入pyttsx3以加载其所有的类和变量。然后我们初始化语音引擎,设置一个我们想要的声音,然后是我们想要说的文字。最后我们使用engine.runAndWait()来说话。  然后我们可以在终端用下面的命令运行这个文件。  python speech.py 1 玩一玩这个,改变text_to_say变量。你应该能说出任何你喜欢的东西。  酷!调整声音和速度  现在我们有了一些工作,让我们给我们的助手一些调整。Pyttsx3让我们调整声音和速度。  import pyttsx3  engine = pyttsx3.init()  # change voice  # getting details of current voice voices = engine.getProperty('voices')        for i in range(len(voices)):     engine.setProperty('voice', voices[i].id)     # say something     engine.say("Pick me, pick me! My voice is number " + str(i))     engine.runAndWait()  1 在上面的例子中,你可以改变声音_num到一个不同的数字来获得一个新的声音。从我的测试来看,这似乎取决于平台(可能取决于你的平台有SAPI5,NSSpeechSynthesizer或espeak)。  我创建了这个怪物般的文件(当很多机器人的声音用奇怪的口音和你说话时,你就会明白为什么),以帮助你决定什么声音最适合你。一旦你找到了你喜欢的声音号码,把这个号码换成在voice_num变量中找到的号码。  接下来的步骤  恭喜你达到了终点。如果你有任何问题或只是想打招呼,请在下面发表。  如果你想进一步阅读,我建议你查看下面的链接,并在即将到来的文章中获得先机。  https://www.geeksforgeeks.org/python-text-to-speech-by-using-pyttsx3/  https://realpython.com/python-speech-recognition/  对于我的下一篇文章,我将专注于语音转文字,这样我们的助手就可以对我们的命令作出回应🤖。给我一个关注,以确保你不会错过它。  本文由 mdnice 多平台发布 ———————————————— 版权声明:本文为CSDN博主「qq_40523298」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/qq_40523298/article/details/127766068 
  • [安装] window11 Pip安装失败
    一、选择如下:二、执行命令以及报错如下:
  • [技术干货] windows中cmd下添加、删除和修改静态路由实现【转】
    1、添加一条路由表1route add 192.168.20.0 mask 255.255.255.0 192.168.4.1 metric 2 if 2命令说明:添加一条路由记录,所有到192.168.20.0/24网段的数据包,都通过2号接口(网卡)走192.168.4.1的网关,优先级为2。12route add -p 192.168.100.0 mask 255.255.255.248 192.168.1.1 metric 3 if 2#作用同上,-p参数表:该记录为永久路由,不会因为重启机器而丢失。2、删除一条路由表1route delete 192.168.10.0【语法】route delete 网络目的地址 [mask] [子网掩码]route delete 112* ------->删除路由时用这种模糊匹配,表删除以112开头的IP路由表中的所有路由时;命令说明:如果有两条192.168.10.0路由记录,即路由表中存在相同的“目的网络号”,则会将两条记录同时删除。如果只想删除其中某一条的话,请在删除后用route add命令再添加上其中一条。3、修改一条现有路由记录1route change 162.0.0.0 mask 255.255.0.0 162.54.10.5 metric 2 if 2命令说明:CHANGE参数只能修改路由条目的“网关”和“跳数”。4、查看路由表1route print -4/-6路由表列说明:第一列是网络目的地址。列出了路由器连接的所有的网段。第二行网络掩码列提供这个网段本身的子网掩码,而不是连接到这个网段的网卡的子网掩码。这基本上能够让路由器确定目的网络的地址类。第三列是网关。一旦路由器确定它要把这个数据包转发到哪一个目的网络,路由器就要查看网关列表。网关表告诉路由器这个数据包应该转发到哪一个IP地址才能达到目的网络。第四列接口列告诉路由器哪一个网卡连接到了合适的目的网络。从技术上说,接口列仅告诉路由器分配给网卡的IP地址。那个网卡把路由器连接到目的网络。然而,路由器很聪明,知道这个地址绑定到哪一个物理网卡。第五列是测量,或跳数。测量本身是一种科学。该值越小的,可信度越高【例子】12NetworkDestination Netmask Gateway Interface Metric0.0.0.0 0.0.0.0 116.69.106.120 116.69.106.1 1上面信息表示发向任意网段的数据通过本机接口116.69.106.1被送往一个默认的网关:116.69.106.120,它的管理距离是1,管理距离指的是在路径选择的过程中信息的可信度,管理距离越小的,可信度越高。5、查看广播信息12345678arp -a##查看查看与本地电脑连接的mac地址跟IP地址,即当前电脑上的ARP映射表。可以看到当前的ARP的映射关系是动态的还是静态的。arp -s w.x.y.z aa-bb-cc-dd-ee-ff##添加静态ARP实现ARP绑定。其中w.x.y.z代表要绑定的IP地址,aa-bb-cc-dd-ee-ff代表其MAC地址arp -d InetAddr[IfaceAddr]##删除指定的IP地址项,此处的InetAddr代表IP地址,要删除所有项,请使用星号(*)通配符代替。
  • [技术干货] Windows 批处理的应用小结【转】
    批处理概述批处理,顾名思义就是可以批量处理,也称为批处理脚本,英译名为BATCH,后缀名.bat也是由此而来。他的构成没有固定的格式,只要遵循:每一行可视为一条命令,每条命令里可以含多条子命令,从第一行开始执行,直至最后一行结束,它运行的平台是DOS即可。批处理的特点:使用方便、灵活,功能强大,自动化程度高。rem命令是批处理文件中的注释,相当于C++中的//。 @echo off                  rem echo off:关闭回显,批处理中的每一条命令都不会显示在显示器上。而echo off本身也是一条命令,如果不想让其显示,只需在前方加@符号即可。  SET CURRENT_PATH=Í% rem 注意,SET等号左右两边不能有空格 rem 将等号右侧的值赋值给等号左侧的变量; rem 使用%包裹的字符(字符串)是一个变量; rem Í%:点击的bat脚本的工作路径(最开始点击的bat脚本所在的路径)。  SET PROTOC_PATH=%CURRENT_PATH%  SET PATH=%PATH%;%PROTOC_PATH% rem 将PROTOC_PATH所指向的路径添加到系统PATH环境变量中去(并不会永久改变环境变量,是临时性的)  set target_path=. echo 编译: player.proto cpp && "%PROTOC_PATH%\protoc.exe" --cpp_out="%target_path%/" --proto_path "./" player.proto  rem echo + message,用来在DOS界面打印消息,类似于C语言的printf。 rem &&符号在第三部分:常用特殊符号中有介绍,不再叙述。 rem 由于一开始开启@echo off,而&&后面部分为一条命令(将ProtoBuf源文件编译为C++源文件,包括.h、.cc文件),则在DOS界面中是不会显示的,即@echo off的屏幕效果不会因为&&而失效。  echo 编译: player.proto csharp && "%PROTOC_PATH%\protoc.exe" --csharp_out="%target_path%/" --proto_path "./" player.proto  rem 原理同上。  echo 操作完成,按任意键退出 echo 完成时间 Úte:~0,10% %time:~0,8% rem Úte:~0,10%是批处理中用于取日期的命令。~0,10%类似于字符串截取。 rem %time:~0,8%是批处理中用于取时间的命令。~0,8%类似于字符串截取。  pause>nul&exit rem pause是批处理中按任意键退出,但是由于会显示一行中文,故使用>nul,用于屏幕标准输出在屏幕上的显示,即“按任意键退出”该行中文不会显示在DOS界面中。&符号的作用在第三部分:常用特殊符号已经介绍。 rem exit命名用于退出DOS控制台,当我们按任意键退出时,执行exit。 常用特殊符号命令含义@命令行回显屏蔽符%批处理变量引导符>>>输出重定向> 传递并覆盖>> 传递并在末尾追加<>&<&管道命令,一般不常用|命令管道符^转义字符,将特殊符号 < 、 > 、 & 的特殊功能去掉&&&||组合命令,就是把多个命令组合起来当一个命令执行。& 命令是顺序执行的,从前往后执行&& 可以同时执行多条命令,当碰到执行出错的命令后,将不再执行后面的命令|| 可以同时执行多条命令,当第一个命令执行失败后,才执行第二条命令,当碰到执行正确的命令后将不再执行后面的命令“ ”字符串界定符号,相当于空格;当命令相同时,可以将不同的目标用 ; 来隔离,但执行效果不变,如果执行过程中发生错误,则只返回错误报告,但程序仍会执行( )小括号在批处理编程中有特殊的作用,左右括号必须成对使用,括号中可以包括多行命令,这些命令将被看成一个整体,视为一条命令行!在变量延迟问题中,用来表示变量,即 %var% 应该表示为 !var!批处理(bat) Í% 与 %~dp0的区别Í%是指:点击的bat脚本的工作路径(最开始点击的bat脚本所在的路径)。%~dp0是指:当前执行的bat脚本所在目录(随着执行脚本的变化而变化)。TIPS:%~dp0可以在A.bat的命令行中运行B.bat时,获得B.bat所在的路径。批处理(bat)将路径添加到PATH环境变量中的两种方式环境变量:通过在环境变量里面加入所需软件的安装路径(exe文件所在路径),当我们想运行某一软件时双击其快捷方式或者在DOS界面输入软件名称(命令),此时,计算机除了在其当前目录下寻找该软件的.exe文件之外,还在环境变量中搜索该软件的执行路径,找到,则运行。永久添加TIPS:该方式需要有管理员权限。123456@echo offrem 设置要永久加入到path环境变量中的路径set My_PATH=D:AppFolderset PATH=%PATH%;%My_PATH%reg add "HKLMSYSTEMCurrentControlSetControlSession ManagerEnvironment" /v "Path" /t REG_EXPAND_SZ /d "%PATH%" /fexit临时添加123456@echo offrem 设置要临时加入到PATH环境变量中的路径set My_PATH=D:AppFolderset PATH=%PATH%;%My_PATH%rem 其它脚本命令todopause