有时候程序需要调用系统的命令行获取更强大的系统支持。
Python 提供了丰富的调用方式,主要有以下一种:
-
os 模块
-
commands 模块
-
subprocess 模块
我们下面依次学习一下这几个模块。
os 调用方式
os.system
import os
os.system("ls")
有时候程序需要调用系统的命令行获取更强大的系统支持。
Python 提供了丰富的调用方式,主要有以下一种:
os 模块
commands 模块
subprocess 模块
我们下面依次学习一下这几个模块。
import os
os.system("ls")
Windows 脚本是一种自动化任务的脚本语言,它允许用户通过编写脚本来执行一系列的命令和操作,从而简化和自动化 Windows 系统中的重复性任务。Windows 脚本主要有两大类:批处理脚本和 Windows PowerShell 脚本。
批处理脚本是一种简单的脚本语言,它使用 .bat
或 .cmd
作为文件扩展名。批处理脚本可以执行一系列的命令,这些命令按照在脚本中的顺序依次执行。批处理脚本的基本语法如下:
批处理脚本存储在简单的文本文件中,包含了一系列按顺序执行的命令行。
脚本编写是一种通过自动化这些命令序列来减轻手动输入必要性的方法,以便使在命令行界面下的工作和生活更加轻松和高效。本教程讨论了批处理脚本的基本功能,并提供了相关示例以便于理解。
本教程为初学者准备,以理解批处理脚本的基本概念。
希望读者具备一定的计算机编程知识以及对变量、命令、语法等概念的理解。
批处理脚本被用来自动化那些本质上重复的命令序列。脚本编写是一种通过自动化这些命令序列来减轻手动输入必要性的方法,以便使在命令行界面下的工作和生活更加轻松和高效。在大多数组织中,批处理脚本以这样或那样的方式被纳入其中,以实现自动化。
以下是一些常用的批处理命令及其描述的列表:
序号 | 命令及描述 |
---|---|
1 | VER 此批处理命令显示你正在使用的MS-DOS版本。 |
2 | ASSOC 这是一个批处理命令,用于将扩展名与文件类型(FTYPE)关联,显示现有的关联,或删除关联。 |
3 | CD 此批处理命令有助于更改到不同的目录,或显示当前目录。 |
4 | CLS 此批处理命令清除屏幕。 |
5 | COPY 此批处理命令用于将文件从一个位置复制到另一个位置。 |
6 | DEL 此批处理命令用于删除文件,而不是目录。 |
7 | DIR 此批处理命令列出目录的内容。 |
8 | DATE 此批处理命令帮助查找系统日期。 |
9 | ECHO 此批处理命令显示消息,或打开或关闭命令回显。 |
10 | EXIT 此批处理命令退出DOS控制台。 |
11 | MD 此批处理命令在当前位置创建一个新目录。 |
12 | MOVE 此批处理命令在目录之间移动文件或目录。 |
13 | PATH 此批处理命令显示或设置路径变量。 |
14 | PAUSE 此批处理命令提示用户并等待输入一行文本。 |
15 | PROMPT 此批处理命令可用于更改或重置cmd.exe提示符。 |
16 | RD 此批处理命令删除目录,但在删除之前目录需要为空。 |
17 | REN 重命名文件和目录 |
18 | REM 此批处理命令用于批处理文件中的备注,防止备注内容被执行。 |
19 | START 此批处理命令在新窗口中启动程序,或打开文档。 |
20 | TIME 此批处理命令设置或显示时间。 |
21 | TYPE 此批处理命令将文件或文件的内容打印到输出。 |
22 | VOL 此批处理命令显示卷标。 |
23 | ATTRIB 显示或设置当前目录中文件的属性 |
24 | CHKDSK 此批处理命令检查磁盘是否有任何问题。 |
25 | CHOICE 此批处理命令为用户提供选项列表。 |
26 | CMD 此批处理命令调用另一个命令提示符实例。 |
27 | COMP 此批处理命令基于文件大小比较2个文件。 |
28 | CONVERT 此批处理命令将卷从FAT16或FAT32文件系统转换为NTFS文件系统。 |
29 | DRIVERQUERY 此批处理命令显示所有已安装的设备驱动程序及其属性。 |
30 | EXPAND 此批处理命令从压缩的.cab柜员文件中提取文件。 |
31 | FIND 此批处理命令在文件或输入中搜索字符串,输出匹配的行。 |
32 | FORMAT 此批处理命令格式化磁盘以使用Windows支持的文件系统,如FAT、FAT32或NTFS,从而覆盖磁盘的先前内容。 |
33 | HELP 此批处理命令显示Windows提供的命令列表。 |
34 | IPCONFIG 此批处理命令显示Windows IP配置。按连接显示配置和该连接的名称。 |
35 | LABEL 此批处理命令添加、设置或删除磁盘标签。 |
36 | MORE 此批处理命令一次显示一个屏幕的文件或文件内容。 |
37 | NET 根据使用的命令提供各种网络服务。 |
38 | PING 此批处理命令通过网络向指定地址发送ICMP/IP "echo"数据包。 |
39 | SHUTDOWN 此批处理命令关闭计算机,或注销当前用户。 |
40 | SORT 此批处理命令从源文件获取输入并按字母顺序排序其内容,从A到Z或Z到A。它在控制台上打印输出。 |
41 | SUBST 此批处理命令给本地文件夹分配一个驱动器字母,显示当前分配,或删除分配。 |
42 | SYSTEMINFO 此批处理命令显示计算机及其操作系统的配置。 |
43 | TASKKILL 此批处理命令结束一个或多个任务。 |
44 | TASKLIST 此批处理命令列出任务,包括任务名称和进程ID(PID)。 |
45 | XCOPY 此批处理命令以更高级的方式复制文件和目录。 |
46 | TREE 此批处理命令显示当前目录的所有子目录的树形结构,到任何递归或深度级别。 |
47 | FC 此批处理命令列出两个文件之间的实际差异。 |
48 | DISKPART 此批处理命令显示和配置磁盘分区的属性。 |
49 | TITLE 此批处理命令设置在控制台窗口中显示的标题。 |
50 | SET 显示当前系统上的环境变量列表。 |
感觉这个教程教的东西比较危险,上来就是删除。
我们一个个来,CRUD。
@echo off
echo current path:
echo %CD%
echo current files:
dir /b
pause
通常,批处理文件的第一行通常包含以下命令。
@echo off
批处理文件中有两种类型的变量。
一种是为了在调用批处理文件时可以传递的参数,另一种是通过 set
命令进行设置。
批处理脚本支持命令行参数的概念,可以在调用批处理文件时向其传递参数。这些参数可以通过变量 %1, %2, %3 等在批处理文件中被调用。
以下示例展示了一个接受3个命令行参数的批处理文件,并将它们回显到命令行屏幕。
@echo off
echo %1
echo %2
echo %3
为脚本添加注释或文档始终是一个良好的实践。这对于维护脚本以理解脚本实际上做了什么是必需的。
例如,考虑以下没有任何注释的代码片段。
如果任何没有开发过以下脚本的普通人试图理解脚本,那么这个人要理解脚本实际上做了什么将需要很长时间。
@echo off
if not "%OS%"=="Windows_NT" goto Syntax
echo.%* | find "?" >nul
if not errorlevel 1 goto Syntax
if not [%2]==[] goto Syntax
setlocal
set WSS=
if not [%1]==[] for /f "tokens=1 delims=\ " %%A in ('echo.%~1') do set WSS=%%A
for /f "tokens=1 delims=\ " %%a in ('net view ^| find /i "\\%WSS%"') do for /f "tokens=1 delims= " %%A in ('nbtstat -a %%a ^| find /i /v "%%a" ^| find ""') do echo.%%a %%A
endlocal
goto:eof
echo Display logged on users and their workstations.
echo Usage: ACTUSR [ filter ]
if "%OS%"=="Windows_NT" echo Where: filter is the first part of the computer name(s) to be displayed
在 DOS 批处理脚本中处理字符串通常不像现代编程语言那样直观,但可以利用批处理命令和一些技巧来实现基本的字符串操作。
以下是对您提到的每个操作的示例和解释:
在批处理中,直接赋值即可创建字符串:
@echo off
set greeting=Hello, World!
echo %greeting%
批处理脚本中的数组实现
介绍
在批处理脚本中,数组没有特定的类型定义,但可以被实现。当在批处理脚本中实现数组时,需要注意以下几点。
定义数组
数组的每个元素都需要使用 set
命令定义。
迭代数组
需要使用 for
循环来遍历数组的值。
创建数组
通过以下 set
命令创建数组。