| |
首页 淘股吧 股票涨跌实时统计 涨停板选股 股票入门 股票书籍 股票问答 分时图选股 跌停板选股 K线图选股 成交量选股 [平安银行] |
股市论谈 均线选股 趋势线选股 筹码理论 波浪理论 缠论 MACD指标 KDJ指标 BOLL指标 RSI指标 炒股基础知识 炒股故事 |
商业财经 科技知识 汽车百科 工程技术 自然科学 家居生活 设计艺术 财经视频 游戏-- |
天天财汇 -> 科技知识 -> 听说有一门技术叫windows批处理(bat),请问它有什么现实用途? -> 正文阅读 |
|
[科技知识]听说有一门技术叫windows批处理(bat),请问它有什么现实用途? |
[收藏本文] 【下载本文】 |
看介绍好像和vba、python类似,比如我作为一个普通人,我可以用vba合成去重excel文件,减少我的工作量。 我可以用python建博客 那么批… |
哎……下面的答案这都什么妖魔鬼怪 批处理,顾名思义就是批量的处理某些任务的东西,bat就是batch的缩写,batch就是批量的意思。 这玩意儿和Windows还是CMD啥的都没有半毛钱关系。 因为这是DOS的遗留而已,我们都知道,微软是靠做DOS起家的。最早的Windows不过是DOS的一个应用而已。直到Windows 95才升级成为一个操作系统,但本质上还是从DOS实模式引导来的。 所以Windows批处理这个名字就极其扯淡。 到了Windows 2000之后,原有的DOS内核已经被全部扔掉。但是为了兼容一些在命令行下面比较方便处理的任务,也便于系统运维人员的使用,还有早期DOS用户的迁移。就做了个叫做CMD的玩意儿,本质上CMD就是一个Windows下的应用,支持有限的一些DOS兼容指令完成指定的操作。它甚至都不能叫做shell,因为Windows的shell就是explorer.exe。CMD就是一个可以用来执行特定DOS兼容指令的命令提示符。 真正的Shell是PowerShell,那才是一个全功能的CLI,理论上可以访问Windows所有的功能。再后来为了PowerShell可以跨平台使用,微软干脆基于dotnet core做了PowerShell的跨平台版本PowerShell Core。 时至今日,BAT的确仍然可以做一些简单的需要批量处理的工作,例如初始化系统,备份文件,安装或者部署应用和软件。但是BAT的能力实在太过于羸弱,并且大部分Windows的应用和功能都不支持CLI,也就无法用BAT来控制。例如最简单的:启用或者禁用系统功能模块,或是修改组策略,变更网络配置等(尽管有部分可以通过WMI或者regedit来曲线救国)。 事实上,很多时候WSH(Windows脚本宿主)的能力比BAT要强得多,因为WSH可以使用脚本直接访问COM组件和服务,使用VBScript和JavaScript编写。然而喜欢看花边的那些家伙有几个知道啥叫作COM……这,才是为啥那个CMD这么多年不更新的原因,因为微软内部IT专业人员的批处理要么用脚本(比如说那个著名的slmgr.vbs),要么直接组策略下发…… 无论如何,这些都是过时的技术了。本质上.NET就是COM技术的迭代。PowerShell就是更强大的WSH。微软的思路是一脉相承的,这个思路并没有什么问题。也不是无脑黑们所YY的那样…… 如果只知道无脑黑微软,而不知道从历史中学到知识,我看很多技术迟早要重新再发明一次,然后换个新的名字出来忽悠人…… |
本质是shell脚本 如果从头开始学的话不如直接学powershell,好用很多 |
批处理就是给「普通群众」用的。你提的VBA、Python 反而是给专业人士用的。 只是中国的计算机行业有点奇怪,很多人是跳过基础知识直接学专业知识,导致计算机行业大量出现只会专业知识不会基础知识的程序员,类似于「会算微积分,却不会算加减乘除」的数学家。真的很荒唐。 |
批处理的主要作用就是完成需要重复执行的任务。程序运行前不需要安装任何东西,Windows系统原生支持,只需要系统自带记事本就可以编辑代码。 这个东西在我的日常计算机维护工作当中会用到。比如说在安装程序之后需要手动执行一些操作,这些操作需要带着U盘在不同的机器上都要执行一遍,那我就可以把这些手动操作用一些批处理代码来描述一下,这样的话就可以做到将这些重复操作一键完成,减少部分重复劳动。 如果一个程序自带运行参数,那更好了,可以指定这个程序的运行方式,这些也可以写到批处理脚本当中。 对于一般人来说,倒不用专门去写批处理脚本,知道几个CMD命令就可以(当然PowerShell下面应该也兼容这些命令)。比如说批量复制、移动、删除、重命名指定文件,配合通配符使用,减少部分手工操作。(要是有人看的话,我后续简单写一下这个。) —————————————— 附上一个自己N年前写的批处理脚本给题主参考,尽管后来微软官方改进了这个问题。 一键删除Windows 10自带的OneDrive组件54 赞同 · 16 评论文章 —————————————— 批处理是连续CMD命令的脚本,按顺序一行一行依次执行。网上现成的教程有很多,在这里只讲几个基本操作,足够大家模仿上手使用。 目录操作。切换目录主要针对手动在命令提示符输入执行CMD命令,建立、改名、删除文件夹可以用于批处理。命令提示符默认目录并非一定是需要执行程序的目标目录,所以需要切换。批处理默认目录为脚本所在目录,除非使用绝对路径。
文件操作。目标支持相对路径和绝对路径。文件名支持通配符,“?”表示单个字符,“*”表示多个字符。
系统自带的命令都支持加上参数“ /?”(不包括引号,前面有空格),显示命令的用法。可以理解为微软官方的文档以及命令使用教程。 ———————————— 实际应用例子一则: 从手机上拷贝出了多年的照片到电脑,文件名全部按照年月日以及拍摄时间进行命名,放在同一个目录。文件名举例:20230501_150123.jpg。 要想实现照片按年份建立文件夹进行分类,可以制作批处理文件到同一个目录,或者在命令行切换目录后依次执行。
以上代码或命令就可以简单实现建立文件夹后将不同年份的照片归类,移动到不同年份文件夹。无需手动操作,不到一分钟搞定,也不会搞错。两种写法都可以用,无非就是创建文件夹在前,移动文件在后。 简单的教程就写到这里。如有更多需求,可查阅网上资料和命令提示帮助。 |
微软虽然在主推powershell,但是还保持了bat的全面兼容 bat是一门玄学,里面各种坑和槽点。无数反人类的语法和用法。 但是他是微软内部兼容最好的脚本,windows内部的第一公民,比windows历史还早的微软亲生儿子。会用的人,可以用这个来做各种惨无人道的事情,同时powershell小子还在折腾脚本执行条件。 |
专栏:windows批处理指令(.bat) hello,说一下我的看法哈。 首先,批处理指令是非常方便快捷且实用的,这点毋庸置疑。以自己在猪厂工作的经历来看: 大型工作室的工种较多,程序经常需要开发各种工具,我们不能指望职能部门还懂得打开终端,输入命令行,一个.bat文件,双击就能解决这个问题。相较于打包成.exe,.bat只需要修改文件名后缀就可以执行,省去了配置大量环境的麻烦。日常工作中,我会把笔记提交到github的私人仓库,直接写一个.bat,每天下班前双击一下,直接add+commit+push,一键同步远端,比打开bash一行行输入快的多。就算是程序自己用,也经常写.bat文件,有的是一键打包资源,有的是检查路径,几乎所有操作都可以浓缩进去。对.bat不熟悉的同学,还可以在.bat里面调用自己熟悉的编程语言,直接省去了学习批处理指令的麻烦。 当然,对一些批处理指令不说做到专业,至少要熟悉吧?否则别人给你一个.bat,你就只会点点点,那不和接口调用侠没区别了,程序还是需要懂一些的。 最近在梳理一些这方面的基础知识,有需要的同学可以参看我的专栏。 前言 今天也要开心鸭:[windows批处理脚本_0]Hello World 上文我们使用echo打印出了Hello World到终端,本文我们将学习更多批处理脚本的输出方式。 注释 常用的注释一般只要记住下面两种就够用了 1. :: 单行注释 2. 多行注释
|
|
输出1. 关闭命令行信息 @echo off:通过bat打开命令行窗口运行命令会输出CMD运行相关的提示信息,可以使用 @echo off 关闭多余的输出。前后对比: 前:不添加指令@echo off |
|
后:添加指令@echo off |
|
2. 输出到终端
3. 输出到文件 案例:先随便看看,有个印象即可,后面会介绍
重定向概念介绍 >将原始文件内容清空再写入(与 1> 相同)>>追加到文件内容后(与 1>>相同) 输出类型区分 1> 或 1 >>标准输出2> 或 2>>错误输出1>&2&2代表错误输出通道,意思是将标准输出到错误通道2>&1&1代表标准输出通道,意思是将错误输出到标准通道 介绍完基本概念,再回看上面的案例,是不是就清楚许多了? 下面再看几个案例加深印象 标准输出
2. 标准追加
3. 错误输出 由于目录下没有 bilibili.exe,因此会输出到file.err
|
|
4. 错误追加 由于目录下没有 bilibili.exe,因此会追加到file.err
5. 将错误输出追加到标准输出文件file.txt中
file.txt文件内容如下:
6. 将标准输出追加到错误输出文件中
file.err文件内容如下
4. 不输出>nul顾名思义,输出到null,即不输出
作业: 题目:有如下脚本,请修改脚本使得 Hello World 输出到 file.txt 文件中,错误信息不输出。
提示:> >nul 作业答案,下一篇文章会公布,试着自己写写看吧~ 总结 本文介绍了批处理指令中的常用注释方法、关闭命令行信息提示的指令,以及常用的重定向输出指令。 复习: :: goto start ... :start @echo off > >> 1> 或 1 >> 2> 或 2>> 2> 或 2>> 2>&1 2>&1 你能说出这些指令的作用吗? 加油 :) |
Linux有个叫脚本的东西,Windows有个叫批处理的东西。 本质差不多,后来微软有个员工觉得cmd不好用,仿照Linux做了个powershell。 |
会dos内部命令跟外部命令,自然就会bat批处理,以前写过很多。 现在这时代,还会研究这个的,估计是做那些系统启动盘的。 说个笑话,bat也可以写出死循环的。以前刚学dos的时候,就在学校机房试过做死。只用两行语句就写了个无限复制的批处理。想办法改了autoexec.bat,开机就调用我写的死循环。受制于当年才10m的NetWare网,直到下课,也没出现想像中的把机房内网服务器的共享盘给占满情况。第二天趁老师不在偷偷的改了回来。 实际上,现在工作中会dos也有用的,比如最常见的批量改文件名,改文件扩展名。 比如一个文件夹里面有几百个文件,中间有很多的考勤表,1月考勤.xlsx,2月考勤.xlsx。。。。,复制到d盘根目录下改扩展名为xls的文件。 copy *考勤.xlsx d:\*考勤.xls 把上面那行复制到文本文件里面,改扩展名为bat。双击运行就可以。 还有很多网站的视频不能直接下载。找到真实地址下载下来也是分成了若干个ts文件。也可以用copy直接合并。只限于规律化的文件名。 copy /b *.ts 视频.mp4 简单粗暴又快速。合并改名一条龙,不需要任何第三方软件。 批处理这玩意,看个人需求。以上只做介绍,现在也很少有写多行批处理的需求了。 |
在DOS和Windows 9x上,有个叫autoexec.bat是系统启动时最早运行的脚本,可以在其中配置一些启动项。 bat可以实现一些比较简单的逻辑判断、文件操作和程序顺序启动。 bat在Windows上属于历史遗留技术,Windows上只是相对多增加了一些基础的操作符和内置指令,OS/2上由bat演化而来的cmd脚本可以提供相当一部分类似Unix shell上的复杂操作。 在当下,bat主要用来存储调用其他程序的启动参数,来替代每次都手动输入。 |
作为普通群众,我电脑里有一个BAT文件,编辑视频用的 |
|
复制到TXT文本,改后缀为bat,同文件夹下要有ffmpeg |
自动化脚本呀,把需要进行的操作放到里面,然后一运行,就把里面的指令一个个执行。 小学的时候我用它做的第一个东西就是清除无用的缓存/下载数据。 当然大部分人win下都只用鼠标点点点了,估计不知道命令行的东西吧。 |
比如说,你在学习类网站下载了一堆诸如 .z .7 .zzz .7删掉z 之类尾缀的文件,那么你可以用bat将其一键变为正常尾缀。 将以下文字复制到TXT文档中,再修改为.bat尾缀,和那些文件放在一个文件夹中,然后运行就可以了。
其他的,比如像“图种”之类的,也可以靠bat合成。可以自己找一下教程。 |
属于早期的一种锦上添花,能解决简单的问题,稍微复杂一点还需要配合WSH宿主脚本来实现,但是由于Windows Xp 乃至Windows 7的各种漏洞太多,导致木马、病毒能把系统直接击穿;所以为了安全我们一般禁用了WHS宿主脚本的执行,甚至禁用cmd等形式来调用批处理。 时至今日,漏洞少了,但是我们也不用批处理了,因为前面说了,它的能力太弱。这个已经被微软的PowerShell[1]所取代,PowerShell强大多了,图形界面下能干的它都能干,虽然看起来好像差不多: |
|
但是这个完全是扮猪吃虎 PowerShell 是一种跨平台的任务自动化解决方案,由命令行 shell、脚本语言和配置管理框架组成。 PowerShell 在 Windows、Linux 和 macOS 上运行。 不过要说到自动化,微软又搞了一个Power Automate,这个更好玩。 参考^微软 https://learn.microsoft.com/zh-cn/powershell/scripting/overview?view=powershell-7.4 |
什么叫Windows批处理?一看就是没经历过autoexec.bat和config.sys时代的人(手动狗头) |
我有一大堆系统配置是跑bat的,新系统跑一遍绝大多数配置就设置好了,就这用途 |
都什么年代了还在用传统bat,你们这些开发啊运维能不能多用用powershell,搞得现在国内杀软edr默认阻拦执行powershell,那要amsi有啥用。 |
Bat批处理,这是40年前的技术。40年前你学会维修BP机,现在也没有什么大用。但是它能教会你命令行脚本的原理,进而举一反三,迭代进化。 答主这个问题跟问现在学会维修7管收音机和黑白CRT电视机有什么现实意义一样。没现实意义,但是题主能学会,代表题主的智商能学会更多的东西。比如Bash和CMake。 即使是25年前开始学习电脑的我,现在也在用PowerShell 7.0代替了Bat。 |
在没有VBA,没有Python,没有PowerShell,没有JavaScript的年代,Bat就有用了。 |
正好去年我就写过一篇回答,里面应用到了 Windows 批处理功能。当时的应用案例可以很好的说明它的现实用途,即「提高效率」。 |
|
文件批处理案例说明 当时的回答在这里:手机照片备份到电脑上之后变成了无格式的文件是怎么回事? 该题主遇到了一个奇怪的问题,VIVO 手机拍摄的照片,在传到电脑上以后变成了没有格式后缀的文件,无法直接打开,但是经过添加文件格式后缀以后又可以打开了。 我用vivo互传里的备份,把我的照片备份到电脑上,然后在电脑上查看就是这个样子,没有文件格式,不能直接打开,要自己加上后缀才能看到图片,求解。 在这里题主的诉求其实是比较简单的,就是寻求一种方法,可以给这些失去了后缀名的文件批量添加后缀名。这就涉及到了 Windows 上面的批处理操作问题。于是我给题主提供了以下解决方案: 将所有失去后缀名的文件都整理到同一个文件夹里;然后创建一个文本文件,里面输入代码指令并保存;将保存的文本文件格式从 .txt 更改为 .bat 批处理脚本文件;将该批处理脚本文件放至上述整理的图片文件夹里;双击该批处理文件,失去后缀名的文件批量完成重命名;问题完美解决。 简单说一下后续,经过评论区反馈来看,这项技术确实帮到了很多不懂该技术的普通人。我觉得我这篇回答写的值了。 现实意义 很多简单的重复性的工作,都可以考虑建立一个标准流程,最好可以将其自动化,这样就可以在很大程度上提高处理效率。 |
我觉得这名字挺直白了,批处理就是批量处理大量重复性操作。。。。 |
我补充个应用小例子 当你安装了一个软件,它安装目录下的所有 exe 文件都有可能会联网,但你偏偏想禁止这个软件的任何联网行为,你说怎么办? 使用 bat 文件写些代码,在系统防火墙里添加策略,就能批量禁止文件夹(含子文件夹)里所有 exe 文件联网,轻松搞定! 具体实现步骤如下: 1、打开 windows 的记事本,粘贴以下代码
|
|
粘贴代码到记事本 2、保存成 .bat 扩展名的文件,名字随意;保存时注意一下编码,要选 ANSI |
|
保存成 bat 文件 3、以管理员身份运行该文件 |
|
以管理员身份运行 4、输入你要禁止联网的文件夹,然后回车。(原理就是搜索文件夹里所有的 exe 文件,然后禁止它们联网,注意:子文件夹中的 exe 文件也将创建规则) |
|
使用过程 5、操作成功!文件夹内所有 exe 的禁止入站、出站规则都已创建,不放心的话,你可以前往防火墙中检查下。 |
|
入站规则 |
|
出站规则 在以上两图的界面中, 如果你想取消,可以按着 Ctrl 进行多选,或按 Shift 进行连续选定,然后按 Delete 就能手动删除选定的规则。 6、如果需要继续创建规则,就继续输入文件夹路径,否则就直接关闭窗口退出就行。 |
前段时间,AI手册群里的同学提到批处理,很多人感兴趣,于是我潜入批处理论坛,从2007年的帖子开始翻起,决定写一个快速入门并上手的教程!批处理论坛: http://www.bathome.net/index.php |
|
本文将从以下4个方面介绍: 1 什么是批处理? 2 批处理案例分享 3 如何一秒制作批处理工具 4 如何成为AI超级个体 全文有点干,值得点赞收藏,反复观看!(配有三百多个常用的批处理代码,已放到AI手册,需要的同学可以直接下载学习,路径:第二章第15小节) 即使你是完全不懂的小白,也能瞬间上手,从工作需求出发,自制任意批处理文件!(不要有压力,真的非常简单,follow me) 1 什么是批处理? 批处理是一个非常简单实用的工具,它可以自动化批量处理文件、系统管理、日常任务简化、生成报告、定时任务、系统维护等。编写的方式也非常简单,首先,打开任意文件夹,点击“查看”,勾选“文件扩展名”,把文件名的后缀展示出来 |
|
鼠标右键,新建一个txt后缀的“文本文档” |
|
打开txt文件,编写代码,保存,修改后缀为.bat,批处理文件就制作好了! |
|
|
单击bat文件,即可直接执行批处理文件 |
|
|
如果需要查看或修改批处理代码,点击bat文件,重命名,把bat改为txt,然后打开文件,即可。 |
|
|
2 批处理案例分享 下面分享一些常用的批处理案例,附源码,可直接套用! 自制截图工具 鼠标双击bat文件,系统就会弹出截图工具,就能截图了。 代码如下:
|
|
|
一键打开任意网站 鼠标双击bat文件,自动打开百度,如果想切换其他网站,只需修改代码中的网址代码如下:
|
|
|
如果每次只打开一个网站还不够爽,可以设置成一次打开任意多个网站!代码如下:
|
|
|
一键获取当前文件的所有文件名 鼠标双击bat文件,当前目录中就会新增一个filelist.txt的文件,其中列出了该目录下的所有文件名。代码如下:
|
|
|
如果文件夹有很多层,可以一键获取当前文件以及所有子文件的文件名。 代码如下:
|
|
|
一键移动文件 一键提取所有「子文件夹中的文件」到当前目录。代码如下:
|
|
|
注意:对于操作文件类的,建议使用前先备份! 还有很多好用的工具,比如批量修改文件名,设置定时关机等,这里不再演示。我已经把这三百多个常用的批处理代码,分享到AI手册,需要的同学可以直接下载,路径:第二章第15小节 |
|
|
3 如何一秒制作批处理工具 对于小白来说,学批处理是比较难的,即使看了上面的使用方法和案例又如何?遇到其它场景照样不会写代码!咋整?有请本次的压轴人物:ChatGPT偷偷告诉你,此教程示例涉及的所有代码,均由ChatGPT独自完成!我一个代码都没写! |
|
|
获取当前目录所有文件名 |
|
获取当前文件及所有子文件的文件名 |
|
把所有子文件提取到当前目录 |
|
是的,不需要写批处理代码,只需跟GPT说,请你用批处理,帮我完成XXXX需求,就可以了,你学废了没? 4 AI超级个体 如果你不会使用ChatGPT,甚至不知ChatGPT是什么,有什么用, 建议你看看我写的这个:《Chat AI效率手册》,带你入门进阶,做一个AI超级个体。 ChatGPT账号注册:全网首发!ChatGPT注册账号教程来啦! 简单的事情不用做,复杂的事情GPT帮忙做,而我们,应该去做更有价值,更具挑战性的事情! 欢迎交流学习,我的微信↓↓↓ |
ps:这种问题总有人争论抬杠,毕竟谁也不希望自己用的技术被视为老古董,过时产物。这就和我在许多年前回答关于该学Python2还是Python3一样,问我就是该学Python3。记住,学习永远是面向未来的,工作才是面向现在的!你学了Python3,不影响你接手维护Python2的项目。逻辑都是一样的,问我就是学PowerShell,这并不影响你用bat写一个启动的快捷方式,甚至耗费不到你5分钟的百度搜索成本 另外没必要质疑我,这是微软官方文档上面说的,建议学PowerShell |
|
什么价值,考古的价值!如果闲得发慌你可以去考古。 这是一个微软自己都抛弃了的东西,怎么还有人跑出来误导人呢?微软自己都觉得这个bat的批处理太垃圾,现在主推PowerShell,真要学Windows的工具脚本语言,你应该去学PowerShell语言。 |
普通人啊……如果你有一个需要经常做的,对系统的一个什么繁复的操作,比如类似修改指定的网关,定期删除一些垃圾文件之类,写个小程序还挺麻烦的,可以写在批处理里,两行字完事儿。 |
批处理就是批量的处理DOS命令。 比如你要把192.168.1.1-255全部ping一遍,结果保存到一个TXT里。 就写一个批处理bat 里面你可以写255行ping命令,也可以定义一个变量,写个循环255次。 |
|
[收藏本文] 【下载本文】 |
上一篇文章 下一篇文章 查看所有文章 |
|
|
股票涨跌实时统计 涨停板选股 分时图选股 跌停板选股 K线图选股 成交量选股 均线选股 趋势线选股 筹码理论 波浪理论 缠论 MACD指标 KDJ指标 BOLL指标 RSI指标 炒股基础知识 炒股故事 |
网站联系: qq:121756557 email:121756557@qq.com 天天财汇 |