批处理bat – 嗨软 https://ihacksoft.com/archive 分享最好用的常用软件 Tue, 22 Nov 2022 02:41:09 +0000 zh-CN hourly 1 https://wordpress.org/?v=4.9.26 轻松实现双击一键锁屏 – BAT 代码,代替Win+L https://ihacksoft.com/archive/1378.html https://ihacksoft.com/archive/1378.html#respond Thu, 23 Dec 2021 11:24:18 +0000 https://ihacksoft.com/?p=2107   如何快速实现一键锁屏?正常情况下,当我们要暂时离开电脑时,可以通过快捷键“Windows+L”实现锁屏。但是在进行远程操作的时候,要想将远程被控制的电脑锁屏不方便,此时可以在远程电脑上写一个bat脚本来实现。

rundll32.exe user32.dll LockWorkStation

或者

start  C:\Windows\System32\rundll32.exe user32.dll LockWorkStation

  将以上代码复制到一个.txt文件里,然后将.txt后缀改后为.bat后双击就可以实现一键锁屏了。

]]>
https://ihacksoft.com/archive/1378.html/feed 0
抛开工具!定时关闭或运行某程序的技巧 https://ihacksoft.com/archive/879.html https://ihacksoft.com/archive/879.html#respond Thu, 14 Nov 2019 07:18:00 +0000 https://ihacksoft.com/?p=1608   因为有时候想用单位电脑下载电影,但是白天不敢,怕占用太大流量被网管发现,所以一般就是下班后开始下载,然后第二天早上来的时候已经下载完成了。但是这里有个问题,电脑整晚开着不太好。于是就想到在某个时间点将其关闭,但话说回来,其实大部分下载工具是自带“完成后关机”的功能的。这里分享一个小技巧。

  假如,要在23:00关闭QQ;在23:30关闭迅雷,可按以下方法实现:在“记事本”中输入下列两行命令(斜体部分,注意空格):

at 23:00 taskkill /f /im QQ.exe
at 23:30 taskkill /f /im thunder5.exe

  保存文件为“定时关闭程序.bat”,然后双击运行,即可实现关闭程序。此方法是利用Windows自带的taskkill命令和at命令来实现定时关闭程序。taskkill命令和at命令的详细参数可在命令行中输入taskkill /?以及at /?来查看。

  利用此方法,还有一点要注意,即“计划服务(Task Scheduler)”必须处于“已启动”状态。以下为更多的实例:

凌晨自动关机

at 00:00 shutdown -s -f -t 0 >nul 2>nul
rem 0>nul 2>nul  表示无论命令执行成功与否都不显示消息

在每个周二的上午8点执行系统垃圾的清理

at 8:00 /every:M cmd /c  d:/clean.bat   或 at 8:00 /every:M clean.exe
rem    cmd /c dir 是执行完dir命令后关闭命令窗口
rem    d:/clean.bat是你要执行垃圾清理的批处理的路径及文件名

系统垃圾一键清理 BAT 下载地址:https://ihacksoft.com/12.html

计划从周一到周六每天上午2:00执行数据库备份

at 2:00 /every:M,T,W,TH,F,S,Su cmd /c d:/autobackup.bat

计划管理

rem 列出当前所有计划
at

rem 取消所有计划
at /del /yes

rem 取消单个计划,如id为2
at 2 /del
]]>
https://ihacksoft.com/archive/879.html/feed 0
大文件 txt 分割成小文件最简单的方法(bat 批处理) https://ihacksoft.com/archive/851.html https://ihacksoft.com/archive/851.html#respond Mon, 04 Nov 2019 02:03:39 +0000 https://ihacksoft.com/?p=1580   昨天在倒腾输入法的词库,就是将某输入法的词库导出后导入到另一种输入法中。摸索了许久,方法应该是没有问题了,只是在导入的时候,txt文件太大了(有9万行),导入程序处于“卡死”的状态,等了半小时都没有恢复过来。结果只能无奈中途放弃结束进程,如果能将这个大文件 txt 分割成一段段的小文件,分批导入,应该能解决问题。

  于是写了一段 PowerShell 的批处理程序(Windows 7 及以上操作系统适用),网上找的很多不行,这段代码经本人亲测可行:

@echo off
color 0a
echo 说明:请把要分割的文本文件重命名为test.txt,此BAT程序和TXT须在同一目录下。
echo 请输入按多少行分割TXT文件,并回车。
set /p n=
powershell -c "$n=1;$m=1;gc 'test.txt'|%%{$f=''+$m+'.txt';$_>>$f;if($n%%%n% -eq 0){$m++};$n++}" 
pause

  操作非常简单!程序运行后,输入要分割的行数即可!如下图:

 txt分割批处理

  程序将根据行数在自动分割并在当前目录下生成:1.txt、2.txt、3.txt……

]]>
https://ihacksoft.com/archive/851.html/feed 0
批处理 BAT 里 &、&&和|| 三个逻辑命令符的意思及区别 https://ihacksoft.com/archive/568.html https://ihacksoft.com/archive/568.html#respond Tue, 16 Apr 2019 11:22:32 +0000 https://ihacksoft.com/?p=1297   今天在读一段局域网共享的BAT代码时,有一句没看懂,主要是涉及到 && 和 || 到这两个符号,应该叫逻辑命令符。马上找了一下资料,明白了,这里记一下:

&  无条件执行&符号后面的命令;
&& 当&&前面的命令成功执行时,执行&&后面的命令,否则不执行;
|| 当||前面的命令失败时,执行||后面的命令,否则不执行。
]]>
https://ihacksoft.com/archive/568.html/feed 0
个人认为 BAT 转 EXE 最好最方便的两个方法 https://ihacksoft.com/archive/245.html https://ihacksoft.com/archive/245.html#respond Thu, 12 Apr 2018 10:49:45 +0000 https://ihacksoft.com/?p=255   BAT批处理文件能将许多的系统命令串起来自动执行,执行效率非常高。但是,批处理文件也有一个很大的缺陷,那就是很容易被别人看透里边的内容,并轻易修改(用记事本即可打开并修改)。如果我们将BAT文件编译为EXE文件,甚至加上密码或其他特性,这样就更加保密和安全了。

  我们大多数人都知道命令提示符及其基本命令。为了完成任务或获取一些信息,在用命令方式进行工作的时候,我们通常会执行一组命令而不是单个命令,这可以在一个BAT文件的帮助下完成。BAT(或批处理文件)是无格式的文本文件,其中包含按顺序执行的许多命令。每当我们从命令窗口中打开一个BAT文件时,它就会依次执行所有命令并输出结果。批处理文件使非技术用户更容易使用CMD命令,因为批处理文件也可以由其他人编写好之后专供普通用户执行。接下来会着重介绍用Bat to Exe Converter工具把BAT文件转换成EXE文件的方法。

1. 用Bat to Exe Converter软件实现

  Bat to Exe converter是一个免费软件,可支持不同的变量和格式。该工具分别提供32位和64位平台的便携式和安装格式。它本身带有很多例子的BAT文件,可以转换为可执行文件。这个工具非常简单易用,我们所需要做的就是打开它并选择自己的批处理文件,然后选择要保存EXE文件的位置。

BAT 转 EXE

  我们可以根据需要进行自定义和对EXE文件进行微调。首先,可以决定应用程序的可见性:选择“隐形应用程序”,它可以在隐藏模式下运行;若选择“可视化应用程序”,则程序对最终用户可见。然后还可以决定工作目录,可以选择应用程序是从“当前目录”还是“临时目录”开始运行。

  如果脚本生成一些临时文件,那么可能希望在脚本结束后删除它们。因此,可选择“在退出时删除”选项,当然也可以根据需要选择“不删除”。Bat to Exe Converter还允许我们用密码加密EXE,选择“加密程序”选项后输入密码即可。密码加密允许禁用对EXE文件的无限制访问。

  除了上述特性用法外,还可以指定脚本针对的体系结构(32位或64位)。可以为不同的架构编译不同的脚本,并分别分发它们。另外,如果脚本需要管理员权限,则可以选择“添加管理员列表”将管理员清单添加到EXE中。还有一些其他的杂项功能:启用“覆盖现有文件”,使EXE自动覆盖现有的文件。此外,还可以选择“使用UPX压缩方案”压缩EXE文件。

  大多数批处理脚本还会使用一些外部文件来实现它们的功能。如果脚本涉及到这种情况,可以单击“包含”选项卡,点击“添加”按钮选择脚本使用的所有文件,然后再进行编译。EXE程序作为一个简单的软件,我们可以给它指定一套版本信息,点击“版本信息”选项卡,在其中指定版本详细信息并为EXE选择一个图标。

  虽然可以用记事本来编辑BAT文件,但记事本写程序总是太原始,显得不够专业。Bat to Exe Converter自带的“编辑器”选项卡专门用来编辑BAT文件。在编译EXE文件之前,可以在这里进行代码更改。编辑器提供了语法高亮显示,这使得查看和编辑批处理文件变得更加显而易见。

  如今的软件程序大都支持多语种界面。Bat to Exe Converter最后一个选项卡“程序设置”允许选择EXE文件的语言,我们可以从24种可用语言中选择任何一种。

  完成自定义EXE文件后,可以单击“编译”按钮将批处理文件编译成EXE文件。此外,还能选择“重置所有条目”,将程序的各项参数恢复其默认值。

2. 通过专门的网站实现在线转换

  除了使用应用程序处理外,我们还可以通过该程序的另一个版本——专门的在线Web网站,实现BAT文件到EXE的实时在线转换(在线地址:http://www.f2ko.de/en/ob2e.php)。

  需要做的就是上传BAT文件,然后在这里和那里选择几个选项。可以自定义可见性,然后还可以指定架构,如果脚本包含需要管理员权限的命令,还可以包括Admin清单,或指定一个密码来保护EXE文件。其他自定义如版本信息、图标和语言设置是不可用的应用。

  一旦完成了自定义,点击“转换”按钮,下载EXE文件。最终的下载文件可在加密的ZIP文件中找到。

  总之,如果我们想快速转换文件,Web应用程序会很有用。但如果想要更多的定制,建议使用上述Windows版应用程序。

]]>
https://ihacksoft.com/archive/245.html/feed 0
自制文件夹隐藏加密 BAT 程序并做代码剖析说明 https://ihacksoft.com/archive/217.html https://ihacksoft.com/archive/217.html#comments Sat, 07 Apr 2018 05:16:14 +0000 https://ihacksoft.com/?p=227   这个文件夹隐藏加密的方法也是在网上看到的,感觉挺有意思的,于是摘过来整理了一下,并且分析一下它的核心代码。目前利用第三方软件实现 Windows 文件夹的加密保护,这已经不是什么新鲜事了。然而,我们还可以用批处理的办法实现。当然,BAT文件只建一次就会一劳永逸。

  首先创建一个文件夹,这其中将要放置以密码保护的子文件夹和用来处理的批处理文件。文件夹创建之后,在其中建立一个文本文件,名字任意,因为它只是一个临时过渡文件,用完后我们会删除它,然后在文本文件中复制以下代码,代码经 ihacksoft.com 测试修改,已无差错。

cls
  @ECHO OFF
  title 文件夹隐藏加密程序 by ihacksoft.com
  if EXIST "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" goto UNLOCK
  if NOT EXIST Private goto MDLOCKER
  :CONFIRM
  echo 确认要加密这个文件夹吗(Y/N)
  set/p "cho=>"
  if %cho%==Y goto LOCK
  if %cho%==y goto LOCK
  if %cho%==n goto END
  if %cho%==N goto END
  echo 无效选择!
  goto CONFIRM
  :LOCK
  ren Private "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
  attrib +h +s "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
  echo 文件夹已被加密!
  goto End
  :UNLOCK
  echo 请输入加密文件夹的密码:
  set/p "pass=>"
  if NOT %pass%== ihacksoft.com goto FAIL ::这里输入你的密码
  attrib -h -s "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"
  ren "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}" Private
  echo 文件夹成功解密!
  goto End
  :FAIL
  echo 密码错误!
  goto end
  :MDLOCKER
  md Private
  echo 加密文件夹建立成功!
  goto End
  :End

文件夹隐藏加密 BAT 程序

代码剖析及使用说明

  本程序主要还是用于学习,如果你要用它来加密隐藏文件数据,请先拿测试数据,待确认无误后再正式使用。带Control命令的字串代表用控制面板创建一个不可见的文件夹;attrib命令带+h和+s参数,可将其设置为系统和隐含属性,这将更加隐秘;代码段中以冒号前置单词引导的每个分段,分别代表一个功能模块。

  至此,任务即将完成。在需要将敏感文件夹设置为用密码访问时,打开上述文件,在代码中找到“这里输入你的密码”字串,删除这个字串,然后输入你自己设置的密码(这里如 ihacksoft.com )。修改完毕后,将这个文档另存为“加密文件夹.BAT”。删除原来的TXT文件,保留BAT文件以后使用。

  双击创建的文件“加密文件夹.BAT”,会立即自动创建一个名为“Private”的文件夹,现在打开这个文件夹,然后将隐私文件保存进去。之后,再双击“锁定文件.BAT”文件,便可看到命令对话窗口。 键入“Y”并按Enter键后,将自动以密码锁定刚才建立的文件夹,同时该文件夹会从眼前消失,现在只能看到有一个批处理文件了。

  如果希望再次看到这个文件夹,再双击一遍“加密文件夹.BAT”文件。但这次运行的结果是,需要先输入先前设定的密码,然后按下回车。随后,我们看到保存隐私文件的“Private”文件夹又出现了。

  这样,我们就完成了免去第三方软件,仅在Windows中用批处理以密码隐藏方式保护文件夹的任务。

  关键的问题来了,如果忘记了密码怎么办?很简单,右击加密文件夹.BAT,编辑,打开后搜索并修改 %pass% 后面的值,相当于就是你重设密码。

]]>
https://ihacksoft.com/archive/217.html/feed 2
两行命令建立一个 System 权限的 CMD Shell https://ihacksoft.com/archive/49.html https://ihacksoft.com/archive/49.html#respond Tue, 08 Nov 2016 01:57:45 +0000 https://ihacksoft.com/?p=59   System 权限是 Windows 系统里的最高权限,高于 Administrator 管理员权限,利用它可以执行常规情况下无法执行的命令或任务,尤其是在系统安全方面。打个比方,病毒、木马大都是以管理员权限运行的,我们在系统中毒后一般都是用杀毒软件来杀毒,如果你的杀软瘫痪了,或者杀毒软件只能查出来,但无法清除,这时候就只能赤膊上阵,手工杀毒了。而利用高于管理员权限的 System 权限运行操作,则会容易得多。两句命令打开一个 Super CMD:

sc Create SuperCMD binPath= "cmd /K start" type= own type= interact
sc start SuperCMD

  很简单,第一句是建立一个系统服务,第二句是启动它,此时你可以运行 whoami 命令查看是为 System 权限用户。

]]>
https://ihacksoft.com/archive/49.html/feed 0
批量更改替换文件名 https://ihacksoft.com/archive/1289.html https://ihacksoft.com/archive/1289.html#respond Fri, 28 Sep 2012 04:05:04 +0000 https://ihacksoft.com/?p=2018   昨天修改我Z-blog的表情,表情包里的表情文件名是以face_01.gif、face_02.gif2和face_03.gif这样命名的,我现在要把它们修改成01.gif、02.gif和03.gif。总共有86个,如果手动一个一个改,那要烦死了。于是我写了个小批处理,一秒钟时间完成任务。

@echo off
title 批量替换文件名 [Hack0573.com]
echo.
echo 本批处理可批量替换本文件所在文件夹下所有文件的文件名。
echo.
echo.&set /p strtemp3= 请输入要替换的文件类型:
echo.&set /p strtemp1= 请输入要替换的文件名字符串(可替换空格):
echo.&set /p strtemp2= 请输入替换后的文件名字符串(删除则直接回车):
setlocal enabledelayedexpansion
for /f “delims=” %%a in (‘dir /a /b *.%strtemp3%’) do (
set nobird=%%a
ren “%%~a” “!nobird:%strtemp1%=%strtemp2%!”)
echo.
echo OK了!
echo.
pause

]]>
https://ihacksoft.com/archive/1289.html/feed 0
批处理提取某一目录中指定类型的文件 https://ihacksoft.com/archive/1148.html https://ihacksoft.com/archive/1148.html#respond Mon, 21 Dec 2009 08:37:32 +0000 https://ihacksoft.com/?p=1877 1.set /p 变量=想显示的提示语这里。
这个是提示用户输入的语句。 ]]>
目标是把任意一个文件夹里面的所有歌曲取出来(*^__^*)。

一:知识讲解

1.set /p 变量=想显示的提示语这里。
这个是提示用户输入的语句。
set /p 变量=请输入:
则会显示:
请输入:
单用户输入后就会把用户输入的保存到变量中。
我们还经常遇到这样的:
set /p=请输入:即没有变量,<代替了要输入的。这个一般用来提示用户。后面一般跟pause或ping比如
set /p=这只是提示作用pause>nul
echo hack0573
就是提示你按键,只要用户输入了就echo hack0573。

2.for的R开关
在CMD下输入for /?可以看到关于for的4个开关
FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]
检查以 [drive:]path 为根的目录树,指向每个目录中的
FOR 语句。如果在 /R 后没有指定目录,则使用当前
目录。如果集仅为一个单点(.)字符,则枚举该目录树。
/R开关就是吧一个磁盘里面符合一定格式的文件提取出来。比如
for /r c:\windows\system32 %%i in (*.dll) do echo %%i&pause
就是把系统目录里面的dll文件提取出来。

3.从完整的文件路径中提取文件名
在for /?里面可以看到。
另外,FOR变量参照的替换已被增强。您现在可以使用下列选项语法:
~I - 删除任何引号("),扩充 %I
%~fI - 将 %I 扩充到一个完全合格的路径名
%~dI - 仅将 %I 扩充到一个驱动器号
%~pI - 仅将 %I 扩充到一个路径
%~nI - 仅将 %I 扩充到一个文件名
%~xI - 仅将 %I 扩充到一个文件扩展名
%~sI - 扩充的路径只含有短名
%~aI - 将 %I 扩充到文件的文件属性
%~tI - 将 %I 扩充到文件的日期/时间
我们利用这个就可以将文件名提取出来了。

二:实战开始

先讲下这次要做的事情。先提示用户讲自己保存歌曲的文件夹拖进窗口,从而得到目录。
然后从目录中提取文件名,最后把完整的文件路径(C:\Windows\System32\bootvid.dll)中提取出文件名bootvid。

好了,我们开始写代码了:

@echo off&setlocal enabledelayedexpansion
set /p mulu=请将歌曲所放文件夹拖进本窗口:
cls
for /r %mulu% %%i in (*.mp3 *.wma) do (
set name=%%~nxi
rem 这里就是讲完整目录名换为文件名和文件类型
set /p= !name!)
echo 完毕.!
pause>nul

]]>
https://ihacksoft.com/archive/1148.html/feed 0
用迅雷进行批量下载,不是批量任务 https://ihacksoft.com/archive/1147.html https://ihacksoft.com/archive/1147.html#respond Mon, 21 Dec 2009 08:04:05 +0000 https://ihacksoft.com/?p=1876   今天我要下载一堆html链接,我肯定不可能一个一个复制进行下载的!用迅雷就可以了!我说的可不是迅雷里面的批理任务,批量任务是指一堆有规律的下载地址,完全不同的。

  我的方法是这样的:设置迅雷的监视选项,监视剪贴板,然后添加监视文件类型。复制那堆链接,迅雷就跳出来要批量下载了!

]]>
https://ihacksoft.com/archive/1147.html/feed 0