批处理打开指定路径下的所有文件

2023-05-16

需求:批处理打开指定路径下的所有文件
前提:默认各位同学已经熟悉常用的各种批处理命令,本文仅对涉及到的批处理命令做简单的介绍,有需要进一步学习,可查阅网上其它资料。也可通过CMD命令行窗口通过 [命令] + /? 方式获取命令的详细信息及帮助。

一、需求功能分析

需求:通过批处理脚本逐个打开指定路径文件夹下的所有文件。拆分明确的功能点如下:
功能点1:命令行窗口输入指定的文件夹路径
功能点2:遍历文件夹中的所有文件
功能点3:打开每次遍历的文件
清晰了每一个子功能点,现在使用学习过的批处理命令来实现就很容易啦,代码思路也是比较清晰的。

题外话:这里也建议每一位初学者,养成良好的习惯,不要一上来就猛干代码,拿到任何一份需求,首先要捋清楚功能点以及实现思路,即使在大脑中简单地过一遍也可以,最好在纸上画一下必要的思维导图。(当然,网上也有很多画思维导图工具,不一定要写在不便保存的纸上,这里就不一一介绍啦)

二、实现功能点命令

(1)功能点1:命令行窗口输入指定的文件夹路径,也可直接在代码中写死,本文中为方便扩展,采取输入方式获取文件夹路径,使用SET 命令设置变量。

设置变量的值:SET [变量名]=[]
举例:set var=5  将var变量的值设置为数字5

命令行窗口输入方式设置变量的值:SET /P [变量名]=[命令行窗口输入的值]
举例:set /p var=Please Input Value : 如果窗口输入 Hello World ,则将var变量的值设置为字符串Hello World,等于号后面的Please Input Value :起提示作用,不计入变量值

数学表达式设置变量的值:SET /A [变量名]=[数学表达式]
举例:set /a var=4+5 将var变量的值设置为数学表达式的运算结果数字9

功能点实现代码:set /p folder_path=Please Input Folder Path :(也可写死:set folder_path=E:\TestFile 假设已明确文件夹路径为 E:\TestFile)

(2)功能点2:遍历文件夹中的所有文件,使用FOR命令遍历文件夹及其子文件下的所有文件。

FOR [参数] %%变量名 IN (通配符) DO [执行的命令]
[参数]/D、/R、/L、/F和无参数一共有5种取值
/D:遍历当前路径下的所有文件夹
/R [路径]:深度遍历指定路径下的所有文件,如果没有指定路径则默认在当前路径
/L:需要结合(通配符)一起使用,此时括号内的用法规则为(start, step, end)相当于java语言中的for语句
/F:用于解析文件中的内容
举例:for %%i in (*) do ( echo %%i ) 遍历当前路径下的所有文件并将所有文件名输出到窗口
举例:for /d %%i in (*) do ( echo %%i ) 遍历当前路径下的所有文件夹并将文件夹名输出到窗口
举例:for /r %%i in (*) do ( echo %%i ) 深度遍历当前路径下的所有文件并将文件名绝对路径输出到窗口
举例:for /r E:\TestFile %%i in (*) do ( echo %%i ) 深度遍历E:\TestFile路径下的所有文件并将文件名绝对路径输出到窗口
举例:for /l %%i in (0, 1, 5) do ( echo %%i )0递增到5,递增步长为1
举例:for /f %%i in (E:\test.txt) do ( echo %%i ) 解析E:\test.txt文件内容输出到窗口

功能点实现代码:for /r [指定文件夹路径] %%i in (*) do (执行的命令)

(3)功能点3:打开每次遍历的文件(功能并非一次性全部打开,为避免一次性打开过多文件导致系统内存溢出,故采取逐个打开的方式),使用START命令打开文件。

START ["标题"] [参数] [待打开文件的绝对路径]
[参数]/I、/MIN、/MAX、/SEPARATE、/SHARED、/LOW、/NORMAL、/HIGH等取值
/I:新的环境将是传递给 cmd.exe 的原始环境,而不是当前环境
/MIN:以最小化方式启动窗口。
/MAX:以最大化方式启动窗口。
/SEPARATE:在单独的内存空间中启动 16 位 Windows 程序
/SHARED:在共享内存空间中启动 16 位 Windows 程序
/LOW:在 IDLE 优先级类中启动应用程序
/NORMAL:在 NORMAL 优先级类中启动应用程序
/HIGH:在 HIGH 优先级类中启动应用程序
举例:start E:\test.txt 默认方式打开文本文件
举例:start /min E:\test.txt 已最小化方式打开文本文件
举例:start /max E:\test.txt 已最小化方式打开文本文件

功能点实现代码:start [指定文件]

三、实现的批处理脚本

在这里插入图片描述
批处理脚本详细解析如下:其中::双冒号后的内容为注释
(1)title Open File Script 批处理打开的窗口显示的标题为“Open File Script”
(2)set /p folder_path=Please Input Folder Path : 则将folder_path变量的值设置为命令行窗口待输入字符串,等于号后面的Please Input Folder Path : 起提示作用,不计入变量值,如键入 E:\TestFile
(3)for /r %folder_path% %%i in (*) do (执行的命令) 遍历指定路径下的所有文件,其中 %folder_path% 为上一步键入的指定路径
(4)echo %%i>>D:\AllFilePath.txt 将已遍历的文件绝对路径保存到 D:\AllFilePath.txt 文本中
(5)echo Ready To Open File %%i… 起注释作用,在命令行窗口输出待打开的文件路径,为下一步的start命令做准备
(6)start %%i 用默认方式打开文件
(7)pause 按任意键继续,避免一次性文件被全部打开

四、运行批处理脚本效果

在这里插入图片描述

五、在此基础上扩展:打开指定后缀的文件

需求:要求只打开txt后缀和.jpg后缀的文件,只需在遍历文件中的通配符中指定文件名正则表达式即可
文件名正则表达式:*.txt 和 .jpg,其中代表任意文件名称,指定后缀

代码修改如下:

@echo off
title Open File Script
set /p folder_path=Please Input Folder Path : 
for /r %folder_path% %%i in (*.txt *.jpg) do (
	echo %%i>>D:\AllFilePath.txt
	echo Ready To Open File %%i...
	start %%i
	pause
)
echo Caution : All File Are Viewed And Ready To Exit
pause

运行结果:
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

批处理打开指定路径下的所有文件 的相关文章

  • ubuntu运行maude提示error while loading shared libraries: libtinfo.so.5

    ubuntu运行maude提示 maude linux64 error while loading shared libraries libtinfo so 5 cannot open shared object file No such
  • connect to host port 22: Connection refused

    Windows 使用SSH连接树莓派 xff1a 提示 xff1a 这里简述项目相关背景 xff1a 今天练习发现使用MobaXterm可以正常连接到树莓派 xff0c 但是使用windows终端就不可以连接 xff0c 显示connect
  • windows通过SSH控制树莓派

    windows通过SSH控制树莓派 xff1a 因学习需要在windows系统下对树莓派进行SSH连接 xff0c 包括SSH密钥生成 密钥传输及公钥保存等 Windows下密钥的产生 在Windows下使用 ssh keygen生成公钥和
  • raspistill command not found

    raspistill command not found xff1a 提示 xff1a 这里简述项目相关背景 xff1a 今天使用树莓派来调用摄像头 xff0c 摄像头为树莓派官方摄像头 xff0c 在升级系统和配置后发现使用raspist
  • 树莓派I2C基本用法

    文章目录 一 I2C二 I2C配置1 I2C02 I2C13 I2C34 I2C45 I2C56 I2C6 三 I2C工具总结 一 I2C 树莓派默认打开I2C功能 xff0c 如果I2C没有打开 xff0c 可以使用命令sudo rasp
  • 树莓派RTC

    文章目录 一 RTC准备二 RTC芯片三 为什么使用hwclock显示找不到硬件总结 一 RTC准备 在使能树莓派RTC之前 xff0c 需要先为树莓派RTC模块安装电池 xff08 一般为纽扣电池 xff09 二 RTC芯片 树莓派4B使
  • cpptools占用率过高

    问题描述 使用vscode发现在系统中cpptools CPU占用率达到百分百 电脑发生严重卡顿 解决方案 xff1a 此问题的出现是因为使用了C C 43 43 这个插件 xff0c 如果直接禁用此插件就可以解决这个问题 如果希望使用这个
  • c语言状态机系统

    读取文件并实现了把里面的数字读取出来并加以求平均数 include lt stdio h gt include lt string h gt using namespace std int a1 1000009 int r 61 0 int
  • 快速创建kvm虚拟机(shell)

    通过脚本的方式 xff0c 快速复制kvm虚拟机 更改脚本变量 使用脚本 结果展示 脚本如下 xff0c 已测试通过 usr bin env bash coding utf 8
  • windows安装虚拟机 Linux-ubuntu20.04.6 LTS x86_64(Py3.7.9)详细教程

    安装虚拟机 首先需要下载vmware 注意版本 xff0c 这里我下载的版本是 vmware最新版 xff08 17 0 0 build 20800274 xff09 17 0 0 build 20800274版本的密钥 xff1a MC6
  • 基于51单片机实现时间显示及闹钟设置

    文章目录 一 介绍二 原理三 步骤四 结果五 结果分析六 总结 一 介绍 本次为大学中的一次创新实验 xff0c 当时老师叫我自己拿个单片机去玩 xff0c 为了赶时间就做了个简单的时间显示和闹钟设置 xff0c 因为比较简单所以也把代码附
  • vim 文本替换

    常规替换 n1 span class token punctuation span n2s hello world g span class token operator span 用world替换文件n1行到n2行所有的hello n1
  • 51单片机定时器工作方式1、2原理详解

    写在前面 1 本篇博文旨在帮助那些像我一样刚入门51单片机 xff0c 如果你对定时器有一定了解 xff0c 但是其中的的工作方式不能理解 xff0c 那么这篇文章很适合你 xff0c 如果你是大神的话 直接绕行吧 2 我在学习的过程中由于
  • 虚拟机Ubuntu连接不了网络的解决方法

    昨晚上虚拟机ubuntu中网络还是正常使用的今天准备安装一个nfs服务发现无法使用apt工具了 xff0c 然后才发现虚拟机没网了 xff0c 然后在百度试了两种方法没有效果 方法1 xff1a 尝试输入以下命令来解决 xff1a span
  • 安装Anaconda并配置环境变量

    安装Anaconda并配置环境变量 下载安装配置变量 下载安装 anaconda官网 xff1a https www anaconda com 选择需要的版本进行下载 https www anaconda com products dist
  • OrCAD 导出 BOM 表

    BOM 表简介 BOM表是什么呢 xff1f 它的全称 xff08 Bill Of Material xff09 即物料清单的意思 顾名思义 xff0c 一个产品的BOM说明了这个产品总共需要多少零配件来组装 所有的PCBA制造商都需要根据
  • Allergo 导出光绘(Gerber)文件及坐标文件

    文章目录 导出 Gerber光绘介绍设置输出文件夹和路径生成钻孔信息导出光绘 ArcworkGerber 生成报错 database has error 导出坐标文件坐标文件介绍生成坐标文件 参考资料 导出 Gerber 光绘介绍 Gerb
  • cpp-http 库的使用

    文章目录 前言 96 cpp http 96 库简介 96 cpp http 96 库使用介绍http 客户端搭建步骤http 服务端搭建步骤 96 cpp http 96 库示例服务端实现客户端实现 示例下载关于示例代码编译出错的问题 参
  • esp32 开发环境搭建

    文章目录 前言提示构建工具安装 IDF设置 idf 目标平台 设定环境变量同时安装多个版本安装 idf 和 tools修改环境变量 参考资料ESP IDF 快速入门编译 ESP AT 工程idf py build 出现cmake faile

随机推荐

  • Latex之给字符上加横线、波浪线、^等

    加 号 xff1a hat x 加波浪线 xff1a widetilde x 加两个点 xff1a ddot x 以上几种对应结果 xff1a 如果是在正文中 xff1a 要在左右带上 公式添加 xff1a overline X 61 fr
  • linux操作系统远程登录拷贝

    1 SSH远程登录 xff1a 命令格式 xff1a ssh 用户名 64 IP地址 命令选项ssh远程登录scp远程拷贝 说明 SSH是专门为远程登录提供的一个协议 xff0c 常用于远程登录 xff0c 使用前需要安装相应的服务和客户端
  • VMware的Debian11如何删除磁盘文件,并在扩充原有磁盘

    删除原有磁盘分区 1 在 虚拟机 gt 设置 中 xff0c 选中需要删除的磁盘分区文件 xff0c 点击 移除 xff1b 2 如果此磁盘已设置开机自动挂载 xff0c 需要取消挂载 xff1a xff08 1 xff09 在 root
  • 计算机视觉思维导图

    计算机视觉思维导图 最近整理的计算机视觉思维导图分享给大家 xff0c 来源于各个教学视频以及博客 xff0c 可以当做字典使用 xff0c 知道整个行业的方向及相关技术 xff0c 按照自己理解的视觉处理任务顺序排序
  • centos8安装docker错误解决

    安装出现 Problem problem with installed package buildah Last metadata expiration check 0 08 17 ago on Sat 20 Feb 2021 12 43
  • c中输入一个十进制数,输出它的八进制二进制以及十六进制

    代码 xff1a span class token macro property span class token directive keyword include span span class token string lt stdi
  • 如何删除Alibaba PC Safe Service

    如何删除Alibaba PC Safe Service Alibaba PC Safe Service是AlibabaProtect服务项目 xff0c Alibaba PC Safe Service这个东西在任务管理器里你是如论如何都关不
  • Yapi-从零搭建接口管理平台

    介绍 旨在为开发 产品 测试人员提供更优雅的接口管理服务 可以帮助开发者轻松创建 发布 维护 API xff1b 官网网址 xff1a YApi 教程 hellosean1025 github io 搭建 其实官网有明确的搭建方法 xff0
  • Sql 数据库细节全解(icelei讲sql)

    磊哥哥讲Sql 一 what who defined1 数据库whatever2 引言导入 二 database and tables guy1 Basic element project definition2 template data
  • 编写一个Shell函数检查Linux系统中某文件的权限是否小于一个值

    我编写了一个Shell函数 xff0c 使用这个函数需要传两个参数 xff1a 文件绝对路径和一个三位整数 通过这个函数可以检查文件权限是否小于等于你给定的值 submod export filepath 61 1 export maxmo
  • codeforces 1328 B. K-th Beautiful String

    题意 xff1a 就是找到第 k k k 个全排列的字符串 通过找规律 xff0c 第一个 b b b 在倒数第二位有
  • 使用python 解ccf-csp 2019-03-1小中大

    传送 问题描述 问题分析 这个题目最大值和最小值很好得到 xff0c 因为已经排好序了 xff0c 只需要判断一下是正序还是反序就可以了 xff0c 至于中位数我们得先清除它的概念 xff0c 如果不清楚 xff0c 也可以从给出来的例子判
  • ubuntu生成anaconda快捷方式

    https blog csdn net weixin 45653050 article details 105636020
  • 编码转换

    编码定义 在计算机硬件中 xff0c 编码 xff08 coding xff09 是在一个主题或单元上为数据存储 xff0c 管理和分析的目的而转换信息为编码值 xff08 典型地如数字 xff09 的过程 在软件中 xff0c 编码意味着
  • Visual Studio Code安装go插件报错

    VScode第一次跑go代码时提示The go outline command is not available Run 34 go get v github com ramya r有效解决安装方法 出现问题 xff1a Visual St
  • TCP实现服务器与客户端的连接(多线程)

    上一篇博客中 xff0c 我们用TCP实现了服务器与客户端的连接 但是有一个问题 xff0c 即一个客户端在和服务器交互时 xff0c 其他客户端无法连接 xff0c 为解决这一问题 xff0c 我们将服务器端改造为线程池的版本 xff08
  • 【GIT】在kali linux上安装git与码云提交|kali安装wps

    xff11 安装git kali自带 xff0c xff08 apt get install git xff09 2 添加git服务用户 xff08 这一步不知道有没有用也输入了 xff0c 只是有点问题 xff09 useradd git
  • Windows10系统重装之U盘安装

    1 准备工作 操作系统 xff1a Windows 10 安装工具 xff1a U盘安装 程序下载 xff1a MediaCreationTool 链接 xff1a https pan baidu com s 1GTnFze86sDjRnV
  • ubuntu18.04安装cuda和cudnn

    一 安装 cuda 1 首先查看自身电脑最高支持的cuda版本为多少 xff0c 在终端输入以下指令 nvidia smi 可以看到我的最高支持 cuda 11 4 2 打开英伟达官网 下载官方cuda 此处我下载的是cuda 11 0 3
  • 批处理打开指定路径下的所有文件

    需求 xff1a 批处理打开指定路径下的所有文件 前提 xff1a 默认各位同学已经熟悉常用的各种批处理命令 xff0c 本文仅对涉及到的批处理命令做简单的介绍 xff0c 有需要进一步学习 xff0c 可查阅网上其它资料 也可通过CMD命