
bat
batch脚本语言
文哥博客_wengeblog
2022年5月13日起已经开始使用自己的个人hexo博客
展开
-
bat+js混编10进制转16进制
/*&cls&@echo off&setlocal enabledelayedexpansionset num=12for /f %%a in ('cscript -nologo -e:jscript "%~f0" %cpu%') do ( echo %%a)timeout 2 1>nulexit /b*/WSH.Echo(cpuber(WSH.Arguments(0)).toString(16))参考文献使用JavaScript进行进制转换将字符串转原创 2022-03-04 01:49:09 · 2633 阅读 · 0 评论 -
bat一键修改Windows远程桌面端口
bat一键修改Windows远程桌面端口前言源码使用方法参考文献前言想要修改Windows远程桌面默认3389端口,可手动在注册表中修改两个项目中的端口号值。如果开启了Windows防火墙,那么也需要手动去添加开放修改的端口号,否则无法连接到远程桌面。那么这些步骤也可以通过bat一键处理,代替手工操作。源码@echo offtitle 修改远程桌面端口set port=3388reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal S原创 2021-12-31 13:21:08 · 8957 阅读 · 2 评论 -
Bat批处理一键设置不使用代理服务器的地址
因为经常需要手动去操作很麻烦,后面搜索到是有关联到相关注册表的,那么直接批处理一键更改键值就好了。源码:@echo offreg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v "ProxyOverride" /t REG_SZ /d "upos-sz-upcdnbda2.bilivideo.com;member.bilibili.com;" /f 1>nul其实很简单,就一条命令而已。主要是原创 2021-04-10 08:25:07 · 1242 阅读 · 0 评论 -
bat一键修复打印机一直卡在正在删除提示
源码:@echo offtitle 一键取消打印所有文档net stop spooler 2>nuldel /q /s /f C:\Windows\System32\spool\PRINTERSecho.net start spooler 2>nulset /p=allend.代替了手动操作,就是三个步骤,第一步关闭服务,第二步删除打印的缓存文件,第三步再启动服务。...原创 2021-04-08 15:01:58 · 734 阅读 · 0 评论 -
bat利用c#写第三方exe获取任意时间格式
上一篇讲了利用mshta调用vbs计算时间,这一期讲任意时间格式。直接上c#代码:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace now{ class Program { static void Main(string[] args) {原创 2020-09-17 19:17:28 · 208 阅读 · 0 评论 -
bat中使用mshta调用vbs语句获取精准计算的日期
1.在bat中,获取指定的日期格式是比较麻烦的。因为cmd环境中,日期格式随着系统的时间格式设置而变化,通常系统默认的时间格式是“\’”符号作为连接符。日期通常用在文件名上,比如日志的文件名。那么日期的格式就只能用“-”符号代替,更改系统日期格式会显得容易被外界因素改变,导致不稳定。当然也可以用bat中的set来进行替换,但这样费代码量。2.对于计算日期来说,bat是难以准确做到的,也需要堆积代码量才能完成。特别是到了每个月的一号时,无法确定昨天是否是31号还是30号还是28号。那么bat就只能陷入迷茫原创 2020-09-17 14:51:18 · 1210 阅读 · 0 评论 -
关于cmd中获取指定文件夹内“多个后缀名文件”的BUG及修复!
在cmd中,一想到文件遍历,大家都会想到耳熟能详的dir命令。但是dir,存在着很大的漏洞!在获取某个指定文件夹中多个后缀名文件时,细心的人就会发现,往往无法单独指定文件夹内的文件,而是连当前目录的文件也遍历了。比如,我要获取“文件”文件夹内的四个后缀名文件,*.jpg *.jpeg *.png *.mp4。出现的结果就是:找不到文件是在当前路径没找到,而我们已经指定了在文件目录里面遍历。无论你是找一个还是多个后缀名文件都会连你当前路径也遍历,除非你不指定后缀名,单纯就dir那个文件夹。这对于只在某原创 2020-09-16 21:56:53 · 1234 阅读 · 0 评论 -
Windows下net user用户表的属性
1.每一个用户名最多不能超过20个字节。2.每一个用户表占用空间为25个字符,前20字符为用户名,后5位字符为空格分隔符。(如上图)原创 2017-09-09 22:30:59 · 1249 阅读 · 0 评论 -
禁用账户中文超字节bug修复——得出字符位数
if not "!h:~34,1!"=="0" set /a i+=!h:~34,1!&if "!h:~34,1!"=="2" set /a k-=1 每个用户只允许20个字节,针对不是占用两个字节的字符情况下,20个字节为20个字符。这里的19用在for /l中后面会加1,所以为20。如果字节为2,那么k-1,得到总字符位数(非字节数)。例子:每一个中文字符的字节数为2,一串10个中文...原创 2017-09-10 08:09:30 · 376 阅读 · 0 评论 -
禁用账户无法判断空格bug修复——强制输出
修复代码如下:@echo off&setlocal enabledelayedexpansionset f=ad 我for /l %%a in (0,1,20) do if not "!f:~%%a,1!"=="" (set /p=!f:~%%a,1!<nul>c.txt&if "!f:~%%a,1!"==" " set /p=a<nul>原创 2017-09-10 08:12:36 · 321 阅读 · 0 评论 -
禁用账户无法判断空格bug修复(2)——倒取尾部空格
尾部空格bug:若变量f值字符串中尾部含有空格,如何将其忽略而保留中间空格符?修复代码:@echo off&setlocal enabledelayedexpansionset a=ad 我 for /l %%a in (0,1,65535) do if "!a:~%%a,1!"=="" set /a b=%%a-1&goto a:afor /l %%a in (%b%,...原创 2017-09-10 08:16:25 · 388 阅读 · 0 评论 -
禁用账户——变量表
b 用户表及命令成功完成一长条c b的字符长度-7d 每多少长度里提取一次数e 从多少长度里每提取多少数f 每多少字符里提取每多少字的值g 每单个字符的字节数h 每计算字节数次i 每个字节累加的数值j 每到20个字节的次数值k 超过20字节后原每多少长度里提取一次数m 第一次超过20字节后的计数...原创 2017-09-10 08:20:33 · 337 阅读 · 0 评论 -
win7默认Aero系统主题灰色修复源码
问题现象:任务栏无法使用Aero主题,桌面背景黑色。个性化——Areo主题中的选项变为灰色。解决方案:开启或重启 Desktop Window Manager Session Manager 和 Themes 服务。源码如下:@echo offtitle 修复win7默认Aero系统主题灰色:正在修复...:anet start "Desktop Window Manager Session...原创 2017-09-10 08:24:18 · 5541 阅读 · 0 评论 -
bat cd命令用法
1.cd //显示当前路径。2.cd Windows //进入当前目录下的Windows文件夹。3.cd /d c:\ //进入c盘符根目录,这里的“\”右斜杠代表着进入盘符的根目录,如果不加“\”右斜杠则进入之前的路径。4.cd\ //返回到当前根目录,"\"代表根目录的意思。5.d: //返回到d盘之前路径,若之前没有路径则返回到d盘根目录...原创 2017-09-10 08:28:40 · 7259 阅读 · 0 评论 -
禁用账户中文超字节bug修复——判断超出字节数
if not "!h:~34,1!"=="0" set /a i+=!h:~34,1!&if "!h:~34,1!"=="2" set /a k-=1if !i! gtr 20 set /a i-=20&set /a d-=!i! 每个用户只能创建20个字节i变量对每一个字符进行判断字节数并相加如果相加后的i变量超过20个字节,那么开始i-20提取多余的字节数。例如:i=30个...原创 2017-09-09 22:36:24 · 303 阅读 · 0 评论 -
域名IP段批量生成器源码
背景:网上一哥们儿抓鸡,图省事儿找我帮忙写了个批量获取网站IP所在网段的脚本。修复:完善了日志报告。输入结果:运行过程:输出结果:源码如下:@echo off&setlocal enabledelayedexpansiontitle 域名IP段批量生成器if exist ips.txt del ips.txtif not exist url.txt set /p=<nul>ur...原创 2017-09-10 08:40:39 · 2061 阅读 · 0 评论 -
2的次方计算器源码
背景:4月份写的,出差的时候无聊,坐车途中晕头转向地在草稿本上写方案,走路时心算公式,最后还是给写出来了!过程:核心命令:set /a,命令本身有bug,只能最大输出结果为10位的数字,相当于不能算超过2的30次方的数。对于如何解决此bug,具体还有待研究。 功能:输入端增加纯数字的和超数字的判断。亮点:结尾代码“goto a”采用再循环语句模式,可谓是别具一心!运行过程:源码如下:@echo o...原创 2017-09-11 09:07:36 · 1180 阅读 · 0 评论 -
Windows下ffmpeg批量视频按指定码率添加水印及字幕转码为MP4格式源码
这次是增强版: 1.增加手动输入视频码率和自动压缩视频码率功能。 2.增加子文件夹视频处理,输出视频原子文件夹目录不变。 源码如下:@echo off&setlocal enabledelayedexpansion&title ffmpeg batchif not exist output ( md output) else ( del outpu...原创 2018-03-23 09:12:25 · 3050 阅读 · 5 评论 -
Windows下ffmpeg批量视频添加水印及字幕转码为MP4格式源码
特此我修改了编辑器为markdown编辑,这会儿上传的图片有水印了。 源代码如下:@echo off&setlocal enabledelayedexpansionif not exist output ( md output) else ( del output /q /f )if "%~1"=="" ( set /p a=请拖拽需要操作的文件夹...原创 2018-03-21 15:33:12 · 6064 阅读 · 2 评论 -
提取#中的内容源码
几个月前接的单了,忘记发了。目的是提取txt文件里由“#”前后里面的内容,按数字顺序排序到新的txt文件中。例如:#######123#######则提取:123到1.txt文件内,以此内推。代码使用了for循环读取每行,再输出给变量a,由if来判断当前行首行字符是否有#,如果有,则忽略不输出。没有输出到变量b,变量b为每一次输出的文件名,如:第一次完整输出变量b为1,第二次则是2,以此类推,到达...原创 2018-02-25 15:16:52 · 322 阅读 · 0 评论 -
关于远程桌面进程强制关闭后导致服务崩溃无法连接的修复
今天想偷懒,打算在远程桌面的主机上写一条自动关闭远程桌面的bat,运行能自动关闭远程桌面。前面几次运行关闭成功,不过关闭后等待了几十秒才能继续连接。尝试四次后,终于无法连接上目标主机远程桌面了。自动关闭远程桌面一句话如下:for /f "tokens=5" %%a in ('netstat -ano^|find "192.168.0.93"') do taskkill /f /pid %%a此命令...原创 2018-01-23 15:31:13 · 10536 阅读 · 0 评论 -
去位计算源码
只去掉某字符串前面某个字符,例如字符串为“0123”,去掉0。输出结果为:“123”源代码如下:@echo off&setlocal enabledelayedexpansion:aset /p a=input:rem 代码去位:for /l %%a in (0,1,4) do ( if "!a:~%%a,1!"=="0" ( if %%a equ !b! ...原创 2018-01-22 10:38:36 · 946 阅读 · 0 评论 -
bat字符串位数计算的最佳方法
以前总是用到goto法,如今发现在for命令嵌套中并不适用。现自己又发现了一种新的方法,相比于goto跳出循环法,计算速度上并没有区别。反而拥有如下优点:速度快、适用于for嵌套、代码量少。代码如下:@echo off&setlocal enabledelayedexpansionset /p a=input:for /l %%a in (0,1,9999) do ( set ...原创 2017-12-04 11:01:26 · 2929 阅读 · 0 评论 -
Private感染扫描工具
帮群里一哥们儿写的,写了一个晚上。之前bug太大,重新换了思路。用的变量很多,复杂但却很有条理,思路清晰,终于可以交差了。运行过程:1.对工程文件进行扫描是否存在HintPath标签,如存在,继续扫描HintPath标签下是否有Private感染代码。2.扫描完成后将结果输出到窗口下。按回车键可打开日志报告,查看以往扫描结果。3.扫描日志文件:代码如下:@echo off&setlocal...原创 2017-10-17 01:23:55 · 223 阅读 · 0 评论 -
utf-8编码下替换指定文本内容源码
背景:帮群里一哥们儿写的。bug:1.起初被编码问题搞得晕头转向,后面看到那家伙用的for循环来输出,完美解决了输出的编码问题。2.chcp 65001修改代码页解决了bat下对utf-8编码出现乱码的bug。核心命令:还是靠智能的if判断,一步解决核心问题。源码如下:@echo offdel new.csprojchcp 65001>nultitle utf-8编码下替换指定文本内容...原创 2017-09-21 12:43:02 · 748 阅读 · 0 评论 -
复制当前日期前一天的所有文件源码
背景:帮群内一位哥们儿写的,用时2个多小时。特点:1.支持图标拖拽和窗口拖拽功能。 2.支持复制文件名日志报告。源码如下:@echo off&setlocal enabledelayedexpansion&title 复制当前日期前一天的所有文件if "%~1"=="" ( set /p a=请拖拽需要操作的文件夹到此窗口,按回车键继续: echo. for /f "del...原创 2017-09-20 13:27:07 · 746 阅读 · 0 评论 -
000位自动补全源码
功能:自动补全三位数,如:1=001,11=011,111=111源码如下:@echo off&title 000位自动补全setlocal enabledelayedexpansion:setset /p a=for /l %%a in (0,1,1000) do if "!a:~%%a,1!"=="" set b=%%a&&goto go:goif "%b%...原创 2017-09-12 09:09:42 · 339 阅读 · 2 评论 -
字母大写转小写源码
源码如下:@echo off&setlocal enabledelayedexpansiontitle 字母大写转小写:aset b=-1set /p a=:bset /a b+=1set d=%c%for %%a in (%b%) do if not "!a:~%%a,1!"=="" (if "!a:~%%a,1!"=="A" set c=a&goto cif...原创 2017-09-11 11:20:12 · 622 阅读 · 0 评论 -
自动禁用并启用所有网络连接源码
功能:我用来对付那些无线网信号比较差,连接后不久就没网时修复网络使用。使用步骤:1.将目的无线网络连接勾选好自动连接模式。2.启用此脚本自动重启网络连接,重启后会自动连接之前没有网络的无线网,连接后便能恢复网络的正常通信!背景:几个月前接的一个单子,现在删减了许多顾客当时需要的其它功能代码,保留了下面的核心代码,完全能胜任以上功能。源码如下:@echo off&setlocal enabl...原创 2017-09-11 09:09:13 · 1530 阅读 · 0 评论 -
获取局域网内在线主机名及IP地址源码
使用的核心命令是“net view”,全循环变量模式!源码如下:@echo off&title 获取局域网内在线主机名及IP地址for /f "skip=3 delims=\" %%a in ('net view') do for /f %%a in ("%%a") do if not "%%a"=="命令成功完成。" set /p=%%a<nul&for /f "del原创 2017-09-11 09:08:10 · 5787 阅读 · 0 评论 -
简单阐述dxf移动工具的使用过程及源代码
简介: 这是一个整理dxf文件的bat,它可以将你拥有文件名中某段字符相同的文件复制到已相同字符命名的文件夹里。例如: 当前目录所包含如下dxf文件: [A6]20200003195号3-(长方形)【t=10】-108b1c-【8件】.dxf [A6]28201026380件号25-(长方形)【t=10】-102b1c-【2件】.dxf [A6]28201026380件号27-(长方...原创 2018-04-23 23:10:42 · 552 阅读 · 0 评论