1. 批处理是什么?
批处理(Batch
),也称为批处理脚本。顾名思义,批处理就是对某对象进行批量的处理,通常被认为是一种简化的脚本语言,它应用于DOS和Windows系统中。批处理文件的扩展名为bat 或cmd。
比较常见的批处理包含两类:DOS批处理和PS批处理。
- PS批处理是基于强大的图片编辑软件Photoshop的,用来批量处理图片的脚本;
- 而DOS批处理则是基于DOS命令的,用来自动地批量地执行DOS命令以实现特定操作的脚本。更复杂的情况,需要使用if、for、goto等命令控制程序的运行过程,如同C、Basic等高级语言一样。如果需要实现更复杂的应用,利用外部程序是必要的,这包括系统本身提供的外部命令和第三方提供的工具或者软件。批处理程序虽然是在命令行环境中运行,但不仅仅能使用命令行软件,任何当前系统下可运行的程序都可以放在批处理文件中运行。
中文名 | 外文名 | 操作系统 | 类 别 | 适用系统 | Windows主体 |
---|---|---|---|---|---|
批处理文件 | Batch(bat) | Windows/DOS | 脚本语言 | DOS和Windows | %windir%\system32\cmd.exe |
参考https://www.dostips.com/DtTutoFramework.php
2. DOS和MS-DOS
DOS(Disk Operating System) ,磁盘操作系统,我想对计算机有点了解的人应该都不会陌生这个词,但是具体它是干什么的呢? DOS 是计算机上的一种基于磁盘管理的操作系统,可以直接操作和管理磁盘上的文件,在计算机出厂是基本都会自带一个 DOS 磁盘操作系统。
DOS 发展到现在已经存在很多版本,DOS 家族包括 MS-DOS、PC-DOS、DR-DOS、FreeDOS、PTS-DOS、ROM-DOS、JM-OS等,其中以 MS-DOS 最为著名。虽然这些系统常被简称为"DOS",但没有任何一个系统单纯以"DOS"命名。
注意:本文中的提及的所有DOS均代表MS-DOS
MS-DOS(Microsoft-Disk Operating System) ,是微软的磁盘操作系统,是 DOS 的一个分支。 MS-DOS 的来历可以查阅一下资料,最早的 DOS 称为 86-DOS ,最后由微软创始人比尔·盖茨以 5 美元(来自《硅谷传奇》电影,有时间可以看一看,讲述了乔帮主和盖茨大叔的白手起家之路)收购版权并更名为 MS-DOS 。
初期的 Windows 操作系统实质是基于 DOS 系统的一种图形应用程序,直到 Windows2000 后,才脱离 DOS 本质开始了自己的视窗操作系统。虽然脱离了 DOS ,直到 Win7 , Windows 操作系统中一直保留了 MS-DOS 系统应用,可能是它曾经是霸主的原因。现在 MS-DOS 的最新版本是 6.x ,微软已经宣布停止对 MS-DOS 系统的更新,当然我们了解一下还是非常有必要的。
3. 各种操作系统shell的区别
参考 https://blog.csdn.net/qq_33154343/article/details/123366377
Shell 介绍
『Shell / 壳层』
:命令行界面的解释器,用户和系统内核的沟通桥梁。分为:
- ① 命令行界面(CLI) ;
- ② 图形用户界面(GUI)
『Shell』
=『图形用户界面(GUI)shell』
+ 『命令行界面(CLI)的 shell』
,捋一下 Mac / Linux / Windows 下常见的 shell。讲解 shell、bash、cmd、zsh、PowerShell 等的区别。
图形用户界面(GUI)shell
-
MacOS
的 shell
『Finder / 访达』: 在 MacOS 中,能让用户管理文件、文件、磁盘、网络,以及启动其他的应用程序的引用程序。 -
Linux
的 shell- 『X窗口管理器』: 独立的 X窗口管理器,例如 Blackbox 与 Fluxbox 。
- 『Desktop Environment / 桌面环境』: 桌面环境是依靠于窗口管理器的的扩展实现。如 KDE、GNOME、Xfce、DDE 。
-
Windows
的 shell- 『Explorer / 文件资源管理器』: 此操作系统中浏览电脑中文件与文件夹结构的基本工具,
win + E
快捷键呼出。 - 『开始菜单』: 屏幕的左下角菜单,
win + R
键呼出。 - 『DOS Shell』: 1998 年发布于 MS-DOS 的文件管理器,是终端里面生成的可视化界面。
- 『Explorer / 文件资源管理器』: 此操作系统中浏览电脑中文件与文件夹结构的基本工具,
命令行界面(CLI)的 shell
-
MacOS
/Linux
的 shell- 『sh / Bourne shell』: 1977 在 Version 7 Unix 上的默认 shell。
- 『Bash』: 名称由来 Bourne-Again SHell,在 GNU 计划中,于 1989 发布于第一个版本,是 sh 的兼容的开源的续作。亦是 Linux 和 MacOS (含10.14之前)的默认 shell。
- 『Z shell / Zsh』: 是 sh + bash + 扩展功能。自2019 年起,MacOS 的默认 Shell 已从 『Bash 』改为『Zsh』。
-
Windows
的 shell-
『命令提示符 / cmd.exe』:是 Win32 应用程序,取代『COMMAND.COM』。Windows命令提示符(cmd.exe) 是 Windows NT 下的一个用于运行 Windows 控制台程序或某些 DOS 程序的壳层程序;
-
『PowerShell』 : 包括 ①Windows PowerShell + ②PowerShell Core ,基于 .NET 框架开发,自 2016 年后开源且跨平台。① 为前四年的版本,仅支持 Win 平台;② 则是其演进,支持跨平台 Linux 和 Mac。在Windows中CMD和PowerShell都是命令行执行窗口,PowerShell 从 Windows7 时代开始内置于 Windows 系统当中,可以看作是微软对CMD 的大升级,两者并存于 Windows 系统中。CMD的所有的常用命令诸如dir, cd等在 PowerShell 中都能直接使,但PowerShell功能不限于此,具有强大的功能。powershell需要.NET环境的支持,同时支持.NET对象。
-
『
COMMAND.COM』: 是一个16位的 DOS 应用程序。已经被 命令提示符(cmd.exe) 取代,在 MS-DOS、Windows 95、Windows 98、Windows 98SE 和 Windows Me 上的默认命令行界面。
-
命令区别
PowerShell(命令行) | PowerShell(别名) | cmd命令提示符 | Unix shell | 描述 |
---|---|---|---|---|
Get-ChildItem | gci, dir, ls | dir | ls | 列出目前或指定文件夹中的所有文件和文件夹 |
Test-Connection[a] | ping | ping | ping | 从目前电脑向指定电脑发送Ping,或指示另一台电脑这样做 |
Get-Content | gc, type, cat | type | cat | 获取文件内容 |
Get-Command | gcm | help | type, which, compgen | 列出可用的命令 |
Get-Help | help, man | help | apropos, man | 在控制台上打印命令的文档 |
Clear-Host | cls, clear | cls | clear | 清除屏幕[b] |
Copy-Item | cpi, copy, cp | copy, xcopy, robocopy | cp | 将文件和文件夹复制到另一个位置 |
Move-Item | mi, move, mv | move | mv | 将文件和文件夹移动到新位置 |
Remove-Item | ri, del, erase, rmdir, rd, rm | del, erase, rmdir, rd | rm, rmdir | 删除文件或文件夹 |
Rename-Item | rni, ren, mv | ren, rename | mv | 重命名单个文件、文件夹、硬链接或符号链接 |
Get-Location | gl, cd, pwd | cd | pwd | 显示工作路径(目前文件夹) |
Pop-Location | popd | popd | popd | 将工作路径更改为最近推送到堆栈上的位置 |
Push-Location | pushd | pushd | pushd | 将工作路径存储到堆栈中 |
Set-Location | sl, cd, chdir | cd, chdir | cd | 改变工作路径 |
Tee-Object | tee | 不适用 | tee | 将输入管道传输到文件或变量,并沿管道传递输入 |
Write-Output | echo, write | echo | echo | 将字符串或其他对像打印到标准流 |
Get-Process | gps, ps | tlist,[c] tasklist[d] | ps | 列出所有正在执行的进程 |
Stop-Process | spps, kill | kill,[c] taskkill[d] | kill[e] | 停止正在执行的进程 |
Select-String | sls | findstr | find, grep | 打印与模式匹配的行 |
Set-Variable | sv, set | set | env, export, set, setenv | 创建或更改环境变量的内容 |
Invoke-WebRequest | iwr, curl, wget[f] | curl | wget, curl | 获取互联网上的网页内容 |