命令提示行使用指南
- 前言
- 四、批处理简介
- 五、如何编写批处理
- 1、Hello world
- 2、做加法
- 3、查找文件,并输出到文本。
- 4、批量重命名
- 5、自动记录开机时间
前言
cmd 是 Windows 操作系统中的命令行界面(CLI),也称为命令提示符(CMD)或批处理文件。它是 Windows 命令行界面的主要组成部分,用于用户与 Windows 操作系统进行交互。
这篇博文将简要介绍入门知识,目标读者是对cmd有兴趣的想要认识一下,并用以处理一些简单工作的人。看完此文,读者应该不会在看见有人在黑黑的窗口中敲代码,就觉得对方一定是高手!本文主要介绍批处理的简单应用,短短一篇博文肯定无法介绍太多内容,仅希望能引有兴趣的读者入门。
四、批处理简介
批处理是一种 Windows 系统下的脚本语言,它可以用来自动化执行一系列的命令。批处理文件通常使用 .bat 或 .cmd 扩展名,它们包含了一系列的命令,这些命令可以在 Windows 命令提示符下执行。批处理文件可以用于执行诸如备份、安装软件、配置系统等任务。
与其它如python这种解释型编程语言相比,批处理语言更加简单易学,但是它的功能也更加有限。批处理语言主要用于执行简单的任务,例如复制文件、删除文件、创建目录等。而python编程语言则更加强大,可以用于开发复杂的应用程序和系统。
五、如何编写批处理
其实编写批处理程序,也就和编程差不多,随便找个文字处理工具都行。当然,为了避免编码格式的问题,我们一般会使用cmd生成bat文件,或直接用系统的记事本保存为bat格式文档。
打开 CMD 命令提示符。在 Windows 中,可以按下 Win + R 键组合,输入 cmd 并按回车键来打开 CMD 命令提示符。
创建一个新的批处理文件。可以使用 echo 命令来输出一些文本,然后使用 > 符号将其重定向到一个新的批处理文件中。例如,以下命令将输出一条消息并将其写入一个名为 example.bat 的文件中:
echo "This is a bat file." >> example.bat
这样我们就在当前目录下生成了一example.bat文件,bat后缀的文件就是windows的批处理文件。
格式说明:
1、%VAR_NAME%表示程序使用变量的名称。 @ECHO 命令输出当前光标位置。 IF [condition] 条件语句,如果条件为真,则执行一段语句。
2、注释块:正常使用 :: 或 REM 作为注释符号,这将告诉操作系统忽略接下来的所有内容。批处理还有别的注释方法,比如用goto跳过,用:标记。批处理这破玩意真不是一个正经肢本语言,实在是Windows的用户太多了,才让它有人去用。
3、设置变量:使用set关键字定义变量,例如:set my_variable=hello
。
4、条件语句:使用if-else结构实现条件判断,例如:if "%my_variable%"=="hello" ( echo "Hello!" ) else ( echo "Goodbye!" )
。
5、循环结构:使用for和do-while结构实现循环执行,例如:for /l %%i in (1,1,10) do ( echo Line %i of 10 )
6、脚本代码:使用反引号(`)包围的一系列命令或语句,这些命令或语句将被解释为Windows操作系统可执行的代码。
7、GOTO [label] 用于跳转到标签。
有了以上基本概念,就可以开始写批处理程序了,程序猿界的传统规矩要从 hello world 开始:
1、Hello world
以下是一个简单的批处理脚本示例,它将输出“Hello, world!”到控制台:
@echo off
echo Hello, world!
可以用记事本将这个脚本保存为一个批处理文件,例如hello.bat。要运行这个脚本,您需要按下Ctrl + C组合键,然后打开命令提示符(CMD)并导航(cd 命令)到保存脚本的文件夹。然后,使用以下命令运行脚本:
hello.bat
这将运行保存在hello.bat文件中的可执行文件,并输出“Hello, world!”到控制台。直接将这个文件拖入命令提示行的黑框框也行哦~
2、做加法
@echo off
set /a sum1=0
set /a sum2=10
echo Sum of numbers: %sum1% + %sum2% = %sum1% + %sum2%
pause>nul
以上代码用于计算两个数的和并输出结果。pause>nul 等待用户按下任意键后关闭窗口,这个批处理没有任何实际意义,一般也没人用这么傻的东西,这只是为了演示,下面会介绍几个很有实用意义的批处理。
3、查找文件,并输出到文本。
@echo off
setlocal enabledelayedexpansion
for /r %%i in (*.txt) do (
set filename=%%~ni
rem 将当前文件名赋值给变量filename
echo "!filename!" >> output.txt
rem 将文件名写入output.txt文本文件中
)
pause>nul
在指定目录下查找所有扩展名为.txt的文件,并将它们的名称输出到一个文本文件中。需要注意的是,它的默认目录在不同的系统上可能不同,win10一般会在c:/Users/用户名
4、批量重命名
@echo off
setlocal enabledelayedexpansion
set "oldstring=old"
set "newstring=new"
for /f "delims=" %%i in ('dir /b /a-d') do (
set "filename=%%i"
set "newname=!filename:%oldstring%=%newstring%!"
ren "!filename!" "!newname!"
)
rem 如果没有重命名的文件,提示系统找不到指定的文件并退出。
pause>nul
批量重命名指定文件夹中的文件。将所有存在“old”的文件名更改为以“new”。其中,oldstring和newstring分别是需要被替换的字符串和替换后的字符串。你可以根据自己的需要随便改。这是一个很实用的批处理,比那些重命名软件方便太多了,而且至少不用安装一堆广告软件到系统是吧~
5、自动记录开机时间
@echo off
set "filename=example.log"
set "path=d:\"
set "current_time=%date:~0,4%-%date:~5,2%-%date:~8,2%_%time:~0,2%.%time:~3,2%.%time:~6,2%"
echo %current_time% >> %path%\%filename%
其中,example.log是您想要写入的文件名,d:\是您想要写入的路径。将代码保存为.bat文件,然后放入Windows系统的启动文件夹自动运行即可。需要注意的是,现在的Windows有权限管理问题,不要把路径设在C盘,很可能无法运行,当然你用管理员权限是可以执行的。但没必要不是吗?
*就到这里了,笔者对批处理所知也有限,只能写一点很简单的东西,批处理本身也是一种不算强大的脚本语言。虽然在Windows系统上一直没什么存在感!根据本文介绍,其实可以写一个在运行某些程序前修改系统时间,在程序启动以后自动改回来的脚本,这是不是解决了很多小问题~ 本文完 *