windows basic语言学习笔记,批处理命令的简单使用

在这里插入图片描述

BAT学习笔记

前言

Windows 命令行中对参数的大小写不敏感,因此 /D/d 的效果完全一致。


1. 代码1:创建目录并复制文件

源代码:

@echo off
REM 创建目标目录,如果不存在
if not exist "C:\h2" (
    mkdir "C:\h2"
)

REM 复制当前目录下的所有文件和子目录到 C:\h2\
xcopy /E /I * "C:\h2\"

echo All files and directories have been copied to C:\h2\
pause

说明:

  • @echo off:关闭命令行回显,命令执行时不显示命令本身。

1.1 判断目录是否存在并创建

if not exist "C:\h2" (
    mkdir "C:\h2"
)
  • 注意事项
    1. Windows 系统使用反斜杠 \
    2. 方法体用 () 括起来。
    3. mkdir 命令是 Windows 和 Linux 通用命令。
    4. 目录路径需要加上双引号。

1.2 复制当前目录下的所有文件和目录

xcopy /E /I * "C:\h2\"
  • xcopy:可以批量复制文件和目录。
  • /E:复制所有子目录及文件,包括空的子目录。
  • /I:若目标目录不存在则自动创建。
  • *:表示复制当前目录下的所有文件和子目录。
  • /D:增量备份,若有相同文件则覆盖旧文件。
  • /Q:静默模式,不显示复制过程中的文件名。

1.3 其他命令说明

  • echo:输出指定的字符串,相当于打印。
  • pause:暂停脚本执行,等待用户输入。

2. 代码2:切换目录并启动服务

@echo off
cd /d C:\h2
echo Starting template...
REM 切换到目标目录
cd C:\h2\deploy\node\node-fabric

REM 执行 npm run dev
npm run dev

echo All services started.
pause

说明:

  • cd:进入目录,但不支持跨盘符跳转。
  • cd /d:可以同时切换驱动器和目录。
  • npm run dev:执行开发环境中的 npm 脚本。
拓展:
  • cd /d %~dp0:此命令可以切换回批处理文件的初始目录。

3. 代码3:从文件读取配置参数

配置文件内容:h2.conf

在这里插入图片描述

源代码:

REM 将h2.conf当成一个变量
set CONFIG_FILE=h2.conf

REM 输出当前工作目录
echo Current Directory: %cd%

REM 检查配置文件是否存在
if not exist "%CONFIG_FILE%" (
    echo Error: Configuration file not found at "%CONFIG_FILE%"
    pause
    exit /b
)

REM 从配置文件中读取设置
for /f "tokens=1,* delims=" %%a in (%CONFIG_FILE%) do (
    set %%a
)

echo Starting Nginx...
start /B C:\h2\nginx\nginx-1.27.0\nginx.exe

echo Starting Redis...
start /B C:\h2\redis\Redis-x64-3.0.504\redis-server.exe

echo Starting Java application with dynamic database configuration...
start /B java -jar C:\h2\deploy\app.jar --spring.datasource.url=%SPRING_DATASOURCE_URL% --spring.datasource.username=%SPRING_DATASOURCE_USERNAME% --spring.datasource.password=%SPRING_DATASOURCE_PASSWORD%

说明:

  • %cd%:表示当前目录。
  • %CONFIG_FILE%:表示 h2.conf 文件路径。
检查文件是否存在:
if not exist "%CONFIG_FILE%" (
    echo Error: Configuration file not found at "%CONFIG_FILE%"
    pause
    exit /b 1
)
  • pause:命令暂停,等待用户输入。
  • exit /b 1:退出当前脚本或子程序,返回状态码 1,通常表示执行失败。

3.1 从配置文件读取设置

for /f "tokens=1,* delims=" %%a in (%CONFIG_FILE%) do (
    set %%a
)
  • for /f:用于循环读取文件内容,解析每一行。
  • "tokens=1,* delims="tokens=1,* 指定将行分为多个部分,第一个部分是 tokens=1,其余部分为 *delims= 表示没有分隔符,整个行被当做一个整体处理。
for 循环语法:
for /f " " [] in () do 
    (
        xxx
    )

3.2 启动程序

start /B C:\h2\nginx\nginx-1.27.0\nginx.exe
  • start:用于在新的命令窗口中启动程序。
  • /B:表示在当前窗口中启动程序,而不是创建新的命令窗口,适用于后台运行程序。
拓展:日志记录

你可以将 Nginx 的输出重定向到日志文件,以便后续检查:

start /B C:\h2\nginx\nginx-1.27.0\nginx.exe > C:\h2\nginx\nginx.log 2>&1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/920793.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

5-对象的访问权限

对象的访问权限知识点 对象的分类 在数据库中,数据库的表、索引、视图、缺省值、规则、触发器等等、都可以被称为数据库对象,其中对象主要分为两类 1、模式(schema)对象:模式对象可以理解为一个存储目录、包含视图、索引、数据类型、函数和…

Java Database Connectivity (JDBC + Servlet)

Java Database Connectivity (JDBC)是一个Java API,用于与数据库进行连接和操作。通过JDBC,Java程序可以与各种关系型数据库进行通信,执行SQL查询、更新数据等操作。 一、Java连接数据库两种方式 ​​​​​ ​​ 二、Java中…

[Realtek sdk-3.4.14b] RTL8197FH-VG新增jffs2分区操作说明

sdk说明 ** Gateway/AP firmware v3.4.14b – Aug 26, 2019**  Wireless LAN driver changes as:  Refine WiFi Stability and Performance  Add 8812F MU-MIMO  Add 97G/8812F multiple mac-clone  Add 97G 2T3R antenna diversity  Fix 97G/8812F/8814B MP issu…

鸿蒙多线程开发——线程间数据通信对象01

1、线程间通信 线程间通信指的是并发多线程间存在的数据交换行为。由于ArkTS语言兼容TS/JS,其运行时的实现与其它所有的JS引擎一样,都是基于Actor内存隔离的并发模型提供并发能力。 对于不同的数据对象,在ArkTS线程间通信的行为是有差异的&…

基于单片机的多功能跑步机控制系统

本设计基于单片机的一种多功能跑步机控制系统。该系统以STM32单片机为主控制器,由七个电路模块组成,分别是:单片机模块、电机控制模块、心率检测模块、音乐播放模块、液晶显示模块、语音控制模块、电源模块。其中,单片机模块是整个…

测试工程师如何在面试中脱颖而出

目录 1.平时工作中是怎么去测的? 2.B/S架构和C/S架构区别 3.B/S架构的系统从哪些点去测? 4.你为什么能够做测试这一行?(根据个人情况分析理解) 5.你认为测试的目的是什么? 6.软件测试的流程&#xff…

PHM技术:基于支持向量机的智能故障诊断 | 行星齿轮箱智能故障诊断

目录 1.数据获取 2.特征提取与选择 3.健康状态识别 1.数据获取 用的行星齿轮箱数据采集自图1中的多级齿轮传动系统实验台中,在实验过程中,分别模拟了8种行星齿轮箱的健康状态,包括正常、第一级太阳轮点蚀、第一级太阳轮齿根裂纹、第一级…

【划分型 DP-约束划分个数】【hard】【阿里笔试】力扣1278. 分割回文串 III

给你一个由小写字母组成的字符串 s,和一个整数 k。 请你按下面的要求分割字符串: 首先,你可以将 s 中的部分字符修改为其他的小写英文字母。 接着,你需要把 s 分割成 k 个非空且不相交的子串,并且每个子串都是回文串…

国标GB28181视频平台EasyCVR视频融合平台H.265/H.264转码业务流程

在当今数字化、网络化的视频监控领域,大中型项目对于视频监控管理平台的需求日益增长,特别是在跨区域、多设备、高并发的复杂环境中。EasyCVR视频监控汇聚管理平台正是为了满足这些需求而设计的,它不仅提供了全面的管理功能,还支持…

相机触发模式

参考自:相机触发模式_硬触发和软触发的区别-CSDN博客 一、图像采集模式分类 相机的图像采集模式分为内触发模式与外触发模式。其中内触发模式包含连续采集、单帧采集两种形式;外触发模式包含软件外触发、硬件外触发。本文以海康相机的软件平台作介绍&a…

【数据结构】【线性表】【练习】反转链表

申明 该题源自力扣题库19&#xff0c;文章内容&#xff08;代码&#xff0c;图表等&#xff09;均原创&#xff0c;侵删&#xff01; 题目 给你单链表的头指针head以及两个整数left和right&#xff0c;其中left<right&#xff0c;请你反转从位置left到right的链表节点&…

Applied Intelligence投稿

一、关于手稿格式&#xff1a; 1、该期刊是一个二区的&#xff0c;模板使用Springer nature格式&#xff0c; 期刊投稿要求&#xff0c;详细期刊投稿指南&#xff0c;大部分按Soringernature模板即可&#xff0c;图片表格声明参考文献命名要求需注意。 2、参考文献&#xff…

【Google Cloud】Private Service Connect 托管式服务

简介 Private Service Connect 是什么 Private Service Connect 是 Google Cloud&#xff08;原名 GCP&#xff09;Virtual Private Cloud&#xff08;VPC&#xff09;的一项功能。 该功能主要用于以下两个场景&#xff1a; 使用私有 IP 访问 Google Cloud 的 API。将用户自…

JDK、MAVEN与IDEA的安装与配置

1.认识JDK、MAVEN与IDEA JDK 提供了编译和运行Java程序的基本环境。Maven 帮助管理项目的构建和依赖。IDEA 提供了一个强大的开发环境&#xff0c;使得编写、调试和运行Java程序更加高效。 2. 安装与环境配置 2.1 官网地址 选择你需要的版本下载&#xff1a; MAVEN下载传送…

MySQL深入:B+树的演化、索引和索引结构

提示&#xff1a;内容是读《MySQL技术内幕&#xff1a;InnoDB存储引擎》&#xff0c;笔记摘要 文章目录 二叉查找树平衡二叉树(AVL) B树(BTree)B树(BTree)InnoDB B树索引索引结构&#xff08;InnoDB B树&#xff09;B树存放的数据量 二叉查找树 在二叉查找树中&#xff0c;左子…

FairGuard游戏加固实机演示

此前&#xff0c;FairGuard对市面上部分游戏遭遇破解的案例进行了详细分析&#xff0c;破解者会采用静态分析与动态调试相结合的手段&#xff0c;逆向分析出代码逻辑并对其进行篡改&#xff0c;实现作弊功能&#xff0c;甚至是对游戏资源文件进行篡改&#xff0c;从而制售外挂。…

聊一聊Elasticsearch的索引数据搜索过程

与向索引写入数据的时候必须是主分片来承担不同。搜索的时候&#xff0c;主分片和副本分片均可以承担&#xff0c;最终选用主分片还是副本分片是通过轮询的方式来进行选择的。 索引数据的搜索过程&#xff0c;依据有无路由值&#xff0c;分为两种&#xff1a;不带路由值的搜索…

视频修复技术和实时在线处理

什么是视频修复&#xff1f; 视频修复技术的目标是填补视频中的缺失部分&#xff0c;使视频内容连贯合理。这项技术在对象移除、视频修复和视频补全等领域有着广泛的应用。传统方法通常需要处理整个视频&#xff0c;导致处理速度慢&#xff0c;难以满足实时处理的需求。 技术发…

自动化运维-检测Linux服务器CPU、内存、负载、IO读写、机房带宽和服务器类型等信息脚本

前言&#xff1a;以上脚本为今年8月1号发布的&#xff0c;当时是没有任何问题&#xff0c;但现在脚本里网络速度测试py文件获取不了了&#xff0c;测速这块功能目前无法实现&#xff0c;后面我会抽时间来研究&#xff0c;大家如果有建议也可以分享下。 脚本内容&#xff1a; #…

C语言-11-18笔记

1.C语言数据类型 类型存储大小值范围char1 字节-128 到 127 或 0 到 255unsigned char1 字节0 到 255signed char1 字节-128 到 127int2 或 4 字节-32,768 到 32,767 或 -2,147,483,648 到 2,147,483,647unsigned int2 或 4 字节0 到 65,535 或 0 到 4,294,967,295short2 字节…