dos-基础用法
DOS(磁盘操作系统)是一个早期的基于命令行的操作系统,尽管现代操作系统已经发展为图形用户界面(GUI),但是了解和掌握一些基本的DOS命令仍然非常有用,尤其是在处理批处理脚本、网络管理或者在没有图形界面的情况下。
下面是一些主要的DOS命令和相应的实用案例:
CD (Change Directory): 改变当前目录。
实例:
cd \foldername
切换到根目录下的foldername
文件夹。实例:进入指定盘符的指定路径
cd /d D:\LearningNote\DOS
获取当前目录
C:\Users\Cmy>cd
C:\Users\Cmy
C:\Users\Cmy>echo %cd%
C:\Users\Cmy
DIR (Directory): 显示当前目录的内容。
实例:只显示文件名
dir /b
MD (Make Directory): 创建新的目录。
实例:创建一个子目录
md child
实例:创建多个子目录
md child child1 child2
实例:创建嵌套目录结构
md parent\child1\child2
实例:创建带有空格的目录
md "my folder"
RD (Remove Directory): 删除指定的目录。
实例:删除指定的目录
rd newFolder
实例:删除多个目录
rd folder folder1 folder2
实例:删除非空目录
使用
/s
参数表示递归地删除目录及其所有子目录和文件;使用/q
参数表示静默删除,不显示确认提示rd /s newFolder
rd /s /q parent
DEL (Delete): 删除指定的文件。
实例:
del filename.txt
删除名为filename.txt
的文件。实例:删除特定类型的文件
del *.txt
实例:递归删除目录中的所有文件
del /s parent\*
实例:删除前确认
del /p file_name
TYPE: 显示指定文件的内容。
实例:
type file.txt
显示file.txt
文件的内容。实例:将文件重新写入到其他文件
type file.txt > file2.txt
实例:将文件追加到其他文件
type file.txt >> file.txt
实例:通过管道符号
|
传递给其他命令type file.txt|findstr base
管道符:
|
在DOS(命令提示符)环境下,管道 (|
) 符号用于将一个命令的输出传递给另一个命令作为输入。这种技术允许你创建复杂的命令链来处理文本数据find
#直接用法
find "search_str" file.txt
#配合管道符
type file.txt|find "search_str"
findstr
#直接用法
findstr search_str file.txt
type file.txt|findstr search_str
链式用法
dir | find "data.txt" | find "modified"
COPY: 拷贝文件或目录。
实例:
copy file.txt newfile.txt
将file.txt
复制为newfile.txt
。合并多个文件
copy 1.txt+2.txt result.txt
跨盘符复制
copy 1.txt E:\aaaa.txt
REN (Rename) 或 RENAME: 重命名文件或目录。
- 实例:
ren oldname.txt newname.txt
将oldname.txt
重命名为newname.txt
。
- 实例:
ATTRIB: 修改文件或目录的属性。
- 实例:
attrib +h file.txt
为file.txt
添加隐藏属性。
- 实例:
PATH: 设置或显示当前路径环境变量。
- 实例:
path path1;path2
设置当前路径包含path1
和path2
。
- 实例:
ECHO: 打印文本到屏幕或重定向到文件。
- 实例:
echo Hello, World! > output.txt
将 "Hello, World!" 写入output.txt
。可以用来创建文件 - 实例:
echo append >> output.txt
j将"append"追加(另起一行)到output.txt
- 实例:
SET:设置变量或者环境变量
设置变量和引用,注意,等号(=)两边不能有空格。
@echo off
set h=HelloWorld
echo %h%
显示所有变量和显示特定变了
#显示所有变量
set
#显示特定变量
set JAVA_HOME
set /a
允许你执行简单的算术运算并将结果赋值给变量set /a sum=1+2
set /p
选项可以让用户交互式地输入值@echo off
set /p var="please input your name:"
echo hello %var% ! Welcome!
exit
和errorlevel
exit
命令用于退出当前的命令解释器或者关闭当前的命令窗口。# 立即退出命令行或批处理脚本
exit
# 退出并设置退出代码 ErrorLevel 如果在批处理脚本中使用,/b选项表示退出当前的批处理脚本,而不是整个命令解释器
exit [/b] [exitCode]
errorlevel
是一个系统变量,用于存储上一条命令执行后的退出代码或错误级别。通常,0 表示成功,非零值表示有错误或特定的失败条件。REM 设置errorlevel为1
command1
exit /b 1 REM 设置errorlevel为0(表示成功)
command2
exit /b 0
IF: 条件判断语句,用于编写复杂的批处理脚本。
实例:
@echo off
rem 关闭回显
if exist file.txt (
echo File exists.
) else (
echo File not found.
)
等于(EQU) 和
==
等价 但是优先使用EQUif %var% EQU "value"(
echo the variable is equals to the value;
)
不等于(NEQ)
if 1 NEQ 1 (
echo 1 is not equal to 1
) else (
echo 1 is equal to 1
)
小于(LSS)
if 2 LSS 1 (
echo 2 is less than 1
) else (
echo 1 is less than 2
)
小于或者等于(LEQ)
if 1 LEQ 2 (
echo 1 is less or equal to 2
) else (
echo 2 is less or equal to 1
)
大于(GTR)
if 1 GTR 2 (
echo 1 is greater than 2
) else (
echo 2 is greater than 1
)
大于或者等于(GEQ)
if 1 GEQ 2 (
echo 1 is greater or equal to 2
) else (
echo 2 is greater or equal to 1
)
NOT 取非 注意和
!
不等价@echo
set var=true
if NOT %var%==true echo the var is not true
NOT 和
!
的辨析!
符号在批处理脚本中有特殊用途,它通常与setlocal enableDelayedExpansion
命令一起使用来实现延迟环境变量扩展。当使用!
时,你是在引用一个延迟扩展变量,其值在运行时而不是定义时进行评估。例如:@echo off
setlocal EnableDelayedExpansion
set var=hello
echo Before loop: !var!
for /L %%i in (1,1,3) do (
set var=world
echo Inside loop: !var!
)
echo After loop: !var!
在这个例子中,
!var!
用于访问延迟扩展变量var
的值。
AND (使用
&&
符号表示):if condition1 && condition2 command
OR(使用
||
符号表示):if condition1 || condition2 command
FOR: 循环执行一系列命令。
格式:FOR [参数] %%变量名 IN (相关文件或命令) DO 执行的命令
作用:对一个或一组文件,字符串或命令结果中的每一个对象执行特定命令,达到我们想要的结果。
注意:在批处理文件中使用 FOR 命令时,指定变量请使用 %%variable,而不要用 %variable。变量名称是区分大小写的,所以 %i 不同于 %I.
关于:for命令可以带参数或不带参数,带参数时支持以下参数:/d /l /r /f
实例:这个循环会打印当前目录下所有
.txt
文件的内容。for %%i in (*.txt) do type %%i
实例:
(%var%)
中的空格和英文逗号制表符视为分隔符@echo off
set /p var="please input a var:"
for %%i in (%var%) do (
echo %%i
)
参数
/d
参数只能显示当前目录下的目录名字,只会搜索指定目录下的目录,不会搜索再下一级的目录@echo off
for /d %%i in (c:\*) do echo %%i --显示c盘根目录下的所有目录
for /d %%i in (???) do echo %%i --显示当前目录下名字只有1-3个字母的目录
参数
/r
搜索指定路径及所有子目录中与set相符合的所有文件for /r c:\ %%i in (*.exe) do echo %%i --把C盘根目录,和每个目录的子目录下面全部的EXE文件都列出来了
参数
/l
---
格式:FOR /L %variable IN (start,step,end) DO command [command-parameters]
该集表示以增量形式从开始到结束的一个数字序列。可以使用负的 Step
for /l %%i in (1,1,5) do @echo %%i --输出1 2 3 4 5
for /l %%i in (1,2,10) do @echo %%i --输出1,3,5,7,9
for /l %%i in (100,-20,1) do @echo %%i --输出100,80,60,40,20
参数
/f
主要用于处理文本文件或者命令的输出# delims=xxx 设置分隔符,默认分隔符是空格和制表符。你可以指定一个或多个字符作为分隔符,例如 delims=,; 表示使用逗号和分号作为分隔符。
@echo off
for /f "delims==" %%i in (file.txt) do (
echo %%i
)
读取文件并打印每一行 # tokens=x,y,m-n:指定要提取的字段或范围。例如,tokens=1,2 表示提取第一和第二个字段,tokens=2* 表示提取第二个字段及之后的所有字段。
@echo off
for /f "tokens=2,3 delims=," %%i in (data.txt) do (
echo %%i %%j
)
读取文件每行的第二三列,以,为分割符 # skip=n:跳过前n行不处理。
@echo off
for /f "skip=2 delims=" %%i in (data.txt) do (
echo %%i
) # eol=xxx:指定行尾标记,当遇到这些字符时,认为该行结束。忽略(隐藏、屏蔽)开头字符是xxx的行。
@echo off
for /f "eol=C" %%i in (data.txt) do echo %%i # usebackq:允许使用引号 (") 或反引号 (``) 包围文件名或命令。
@echo off
FOR /F "usebackq" %%a IN (`dir /b`) DO echo %%a
@echo off
FOR /F "tokens=2,* delims=:" %%a IN ('ipconfig ^| findstr /R ",*IPv4,*"') DO echo IP-Address:%%a
# 注意ipconfig ^|中的^是转义字符 |是管道符
GOTO: 转移到批处理脚本中标签所定义的位置。
goto
命令用于跳转到脚本中的特定标签(label),然后从该标签处继续执行。- 实例:
@echo off REM 第一部分
:first_part
echo This is the first part of the script.
pause REM 使用goto命令跳转到第二部分
goto second_part REM 这是永远不会被执行的代码,因为我们将跳转到second_part标签
echo This code will never be executed. :second_part
echo This is the second part of the script. set /p flag="input 1 to return fisrt_part"
if flag equ 1(
goto first_part
)
exit /b 0
- 实例:
PAUSE: 暂停批处理脚本的执行,并显示提示信息。
- 实例:
pause
在执行完批处理脚本后暂停并等待用户按键。
- 实例:
timeout:
timeout
命令用于暂停脚本的执行并等待指定的时间timeout [/t timeout] [/nobreak] [/quiet]
/t timeout:指定等待的时间(以秒为单位)。例如,/t 10表示等待10秒。
/nobreak:默认情况下,用户可以通过按下任意键来提前结束等待。使用/nobreak选项可以禁止这种行为,使得脚本必须等待指定的时间。
timeout /t 10 /nobreak @echo off
setlocal enabledelayedexpansion # 没1秒打印一次 打印10s
set count=0
:start
echo Hello
set /a count+=1
if !count! equ 10 exit
timeout /t 1 > nul
goto start
dos-基础用法的更多相关文章
- DOS基础使用专题(强烈推荐)
DOS基础使用专题(强烈推荐) 美丽的DOS时代 DOS是世界上使用人数最多的操作系统,包括上面的Win3.x/9x等GUI操作平台的用户.尽管许多人由于种种原因而使用了其它非DOS的操作系统或操作环 ...
- PropertyGrid控件由浅入深(二):基础用法
目录 PropertyGrid控件由浅入深(一):文章大纲 PropertyGrid控件由浅入深(二):基础用法 控件的外观构成 控件的外观构成如下图所示: PropertyGrid控件包含以下几个要 ...
- logstash安装与基础用法
若是搭建elk,建议先安装好elasticsearch 来自官网,版本为2.3 wget -c https://download.elastic.co/logstash/logstash/packag ...
- elasticsearch安装与基础用法
来自官网,版本为2.3 注意elasticsearch依赖jdk,2.3依赖jdk7 下载rpm包并安装 wget -c https://download.elastic.co/elasticsear ...
- BigDecimal最基础用法
BigDecimal最基础用法 用字符串生成的BigDecimal是不会丢精度的. 简单除法. public class DemoBigDecimal { public static void mai ...
- Vue组件基础用法
前面的话 组件(Component)是Vue.js最强大的功能之一.组件可以扩展HTML元素,封装可重用的代码.根据项目需求,抽象出一些组件,每个组件里包含了展现.功能和样式.每个页面,根据自己所需, ...
- Smarty基础用法
一.Smarty基础用法: 1.基础用法如下 include './smarty/Smarty.class.php';//引入smarty类 $smarty = new Smarty();//实例化s ...
- 前端自动化测试神器-Katalon的基础用法
前言 最近由于在工作中需要通过Web端的功能进行一次大批量的操作,数据量大概在5000左右,如果手动处理, 完成一条数据的操作用时在20秒左右的话,大概需要4-5个人/天的工作量(假设一天8小时的工作 ...
- Bootstrap fileinput:文件上传插件的基础用法
官网地址:http://plugins.krajee.com/ 官网提供的样例:http://plugins.krajee.com/file-input/demo 基础用法一 导入核心CSS及JS文件 ...
- asyncio 基础用法
asyncio 基础用法 python也是在python 3.4中引入了协程的概念.也通过这次整理更加深刻理解这个模块的使用 asyncio 是干什么的? asyncio是Python 3.4版本引入 ...
随机推荐
- github 2fa中国认证及TOTP App
Because of your contributions on GitHub, two-factor authentication will be required for your account ...
- 【6】python生成数据曲线平滑处理——(Savitzky-Golay 滤波器、convolve滑动平均滤波)方法介绍,推荐玩强化学习的小伙伴收藏
相关文章: Python xlwt数据保存到 Excel中以及xlrd读取excel文件画图 先上效果图: 由于高频某些点的波动导致高频曲线非常难看,为了降低噪声干扰,需要对曲线做平滑处理,让曲线过 ...
- Python下的三维建模和可视化
本文介绍基于AnyCAD Rapid Py三维图形平台开发Python的三维应用 1 准备工作 1.1 安装 vc_resit 2022 在Windows下,AnyCAD Rapid SDK依赖Vis ...
- 三星发布990 EVO SSD:同时支持PCIe 4.0和PCIe 5.0
1月8日消息,三星发布了新款产品--990 EVO SSD,这是首款同时支持了PCIe 4.0 x4及PCIe 5.0 x2通道的SSD. 据了解,990 EVO面向中端市场,为2280 M.2规格, ...
- ECMAScript 2023 新特性预览
ECMAScript 2023 的最终版本预计将于今年 6 月底发布.会议基本已经确定 了 ECMAScript 2023 的新功能列表,预计不会再有任何重大的编辑更改. 着该提案已被 ECMAScr ...
- easyexcel只通过表名来动态查询并动态导出数据
EasyExcel动态表头即动态数据生成 1️⃣ 业务需求 需要将数据库中的所有表放在一个下拉框中,下拉框支持模糊查询到相关的表,然后通过这个表名查询到数据库的数据,切换不同的表查询出来相关表的列和数 ...
- .NET Core开发实战(第24课:文件提供程序:让你可以将文件放在任何地方)--学习笔记
24 | 文件提供程序:让你可以将文件放在任何地方 文件提供程序核心类型: 1.IFileProvider 2.IFileInfo 3.IDirectoryContents IFileProvider ...
- Hadoop的stop-all无法关闭集群原因及解决方案
问题现象:在服务器上长时间运行hadoop之后,如果运行stop-all.sh,会发现: [root@node1 sbin]# stop-all.shThis script is Deprecated ...
- IIS创建和管理虚拟网站
实验介绍: 本文会详细介绍创建虚拟站点的三种方法 一:IP地址建立站点 1.打开安装了IIS的windows,进入ip配置页面. 添加几个ip,我这里添加的是192.168.1.209,192.168 ...
- Nginx+uwsgi+ssl配置https
Nginx+uwsgi+ssl配置https 使用原始django,太过于笨重和杂多nginx是一个轻量级的web服务器,在处理静态资源和高并发有优势uwsgi是一个基于python的高效率的协议,处 ...