cmd中执行批处理(.bat)文件,批处理文件调用python脚本

2023-05-16

记录我在cmd中操作遇到的一些问题。以及Bat脚本常用的一些命令。

文章目录

        • 一、bat批处理文件调用python脚本,此时执行.bat文件出现了无模块的问题。(安装python模块)
        • 二、cmd执行带参的bat脚本,bat脚本中又执行一个带参的python脚本
        • 三、bat文件常用的一些命令
        • 四、特殊操作
          • 1.批量删除文件中含有某个字符串的一行
          • 2.查找文件夹中的指定文件(递归与非递归)

一、bat批处理文件调用python脚本,此时执行.bat文件出现了无模块的问题。(安装python模块)

1.安装pip 包
cmd 进入命令行输入:python -m pip install -U pip setuptools
安装成功以后,在命令行中进入到Scripts文件夹,以便执行下面的命令,我的是C:\python\Scripts
在这里插入图片描述
Windows下长这样
在这里插入图片描述
2、安装所需要的模块
需要进入到Scripts文件夹中,或者你不想每次进入到这里也可以设置环境变量。
pip install [model] (此处的model 可以是任意你想要安装的模块)
在这里插入图片描述



二、cmd执行带参的bat脚本,bat脚本中又执行一个带参的python脚本

1.执行bat脚本
在这里插入图片描述
2.编写bat脚本
在这里插入图片描述
注意:
(1)切记!切记!切记!set不得放在if语句和for语句中,否则像tpath这种路径使用echo打不开,会出现报错:ECHO状态已打开。
(2)/I代表字符串不区分大小写。
(3)切记第四行的" "不能与双引号粘在一起。
(4)set 变量名=变量值,之间不应该有空格。
(5)win中文件路径使用\ , Linux中使用/。
(6)D:\NewGit\OA\boluo\ ,代表目录
(7)D:\NewGit\OA\boluo,只代表boluo这个文件夹
(8)对文件进行操作时,需要先打开这个目录

三、bat文件常用的一些命令

1. @
代表命令行回显屏蔽符,加上后控制台不会显示你这行命令,如果不加会显示
在这里插入图片描述
在这里插入图片描述

2. echo
输出文本

3. echo.
紧挨着,输出空白一行

4. echo off
关闭后续命令行回显,相当于给每一行命令加上了@,命令行回显屏蔽符。
特别地,也可以给自己加上@,那样控制台就不会显示echo off
在这里插入图片描述
5. color
color A0 代表前景台和背景的颜色,还有多种颜色。

6. call
(1)调用其他批处理程序,只能是.bat或者.cmd文件
(2)调用本文件内命令段,被调用的命令段以你自定义的标签:checkError开头,以命令goto :eof结尾

call :checkError
:checkError
for /f "tokens=*" %%i in ('type log.txt^|find /i "error "') do (
	echo ----发生生成错误,已停止继续构建,请检查原因重试----
	echo %%i
	exit 1
)
goto:eof

7. goto
跳转,特别的,goto :eof,意味着结束

8. >> 与 >
重定向符,>>是在文件末尾追加,而>是覆盖
特别的,以下命令行是将字符串覆盖文件已有的内容

echo "apple">version.txt    //文本中显示 "apple"
echo apple>version.txt      //文本中显示 apple

9. set
设置变量

set b=12
echo %b%

10.特殊的第三方命令

1) devenv
devenv是Visual Studio的可执行程序,可以编译.sln项目文件
2) cmake
使用cmake构建文件
3) qmake
使用QT进行编译.pro文件
4) nmake
编译makefile文件,解释里面的语句并执行相应的指令。

11. mkdir / rmdir / rd
创建文件夹 / 删除文件夹,cd 中的/d代表直接转换到后面的路径
rmdir = rd

set BUILD_PATH=%CD%\build\
mkdir %BUILD_PATH%
cd /d %BUILD_PATH%    
:: /S 代表也会删除子目录和子文件,/Q 代表安静模式,删除不需要删除      
rmdir /S /Q %BUILD_PATH%

12. del
用来删除文件

:: /f 强制删除只读文件,/s 从所有子目录删除指定文件,/q 安静模式
del /f /s /q temp.ini

13. %name%
如果一个名称用%括起来,那么就是用的它的赋值,而不是本身的字母。名称最好是大写加下划线。

echo time         显示time这个单词
echo %TIME%       显示系统时间
echo %CD%         显示.bat文件所在目录

14. %1
外部变量,接受外部参数的格式是%1 -%9 ,共9个变量

15. ::
代表注释,后面跟文本内容

16. start
启动一个单独的窗口运行指定的程序或命令

17. pause
使窗口停留,可以按任意键关闭cmd

18. copy
复制version.txt文件,并命名为apple.txt,/Y 代表不提示直接覆盖

copy version.txt apple.txt /Y

19. xcopy
复制文件夹bin到six文件夹中,包括子目录
/s 代表复制目录和子目录,除了空的
/e 代表复制目录和子目录,包括空目录
/y 代表不提示直接覆盖

@xcopy bin setup\main\six\ /s /e /y

20. if
判断文件是否存在,括号与文件名必须隔开

if exist test.txt (
	echo yes
) else (
	echo no
)

if not exist test.txt (
	echo yes
)

21. cmd 一闪而过的可能
1)命令行语法错误
2)程序执行完毕,可以加pause



四、特殊操作

1.批量删除文件中含有某个字符串的一行

在apple.cpp文件中查找到字符串,然后删除这一行,移入到新文件tudou.txt文件中,在删除旧文件,将新文件改名。

::文件操作采用utf-8编码(65001),如果不设置会默认使用ANSII编码,导致cpp文件格式出错
chcp 65001
find /v "port = 8988;" < D:\apple.cpp > D:\tudou.cpp
del /a /f D:\apple.cpp
::旧文件才能加路径
ren D:\tudou.cpp apple.cpp
::文件操作处理后,需要还原为gb2312编码(936),后续执行其他的window程序,必须为gbk编码格式
chcp 936
2.查找文件夹中的指定文件(递归与非递归)
//查找所有名字带".dll"的文件,需要先打开目录
//如果只查找当前目录时(非递归)删除/r

@cd /d %CD%\bin\tools\dll\
for /r %%a in (*.dll) do (
	@echo %%a
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

cmd中执行批处理(.bat)文件,批处理文件调用python脚本 的相关文章

随机推荐

  • 使用Linux能显著降低家用电脑或服务器的功耗?

    就那我家里的电费举例子吧 xff08 心疼 xff09 xff0c 我家上个月电费比平时多了50元 xff08 你能想到50元是都少度电吧 xff1f xff09 xff0c 原因就是就我使用了一个月Linux 这么说Linux能增加电费开
  • 【线程同步与互斥】卖票问题(互斥锁)

    一 简述 1 共享变量 很多变量有时候需要在线程间共享 xff0c 可以通过数据的共享 xff0c 从而完成线程之间的交互 如果变量是只读的 xff0c 多个线程同时读取该变量不会有一致性的问题 xff0c 但是当一个线程可以修改的变量 x
  • 【网络基础】基本协议

    一 协议 1 概念 计算机与计算机之间通过网络实现通信时事先达成的一种约定 两台计算机只要遵循相同的协议就能够实现通信 网络也属于进程间通信 xff0c 公共资源是网络 xff0c 其本质是两个进程通过网络进行收发数据 2 多任务调度 操作
  • 面试必备:”三次握手与四次挥手

    TCP是如何建立连接与断开 xff1f 如何提高可靠性 xff1f 又是如何提高性能的 xff1f 一 TCP的连接与断开 1 连接前的准备 服务端 xff1a 分配文件描述符 gt 绑定 gt 监听 gt 阻塞等待客户端连接 客户端 xf
  • 实现八大排序算法

    八大常用排序实现地址 xff1a https gitee com CCTVYI Algorithm tree master Sort 一 背景 1 稳定性 两个相等的数A和B xff0c 倘若在未排序前 xff0c A在B的前面 xff0c
  • 复杂链表的复制

    一 复杂链表 1 什么叫复杂链表 xff1f 每个节点中有一个节点值 xff0c 以及两个指针 xff0c 一个指向下一个节点 xff0c 另一个特殊指针指向任意一个节点或NULL 2 结构体 struct RandomListNode i
  • 高级IO模型

    一 网络IO 1 高级IO背景 对于网络IO xff0c IO效率提升是至关重要的 xff0c 一个数据在网络中的传输 xff0c 其传输时间主要由网络中的延迟所决定 xff0c 具有不确定性 xff08 什么时候来 xff09 xff0c
  • IO多路转接之select

    github链接 xff1a 通过代码讲解select 此代码先将数组初始化为 1 xff0c 在使用FD ISSET将事件全部设为读事件 xff0c 一旦发现有连接发起请求 xff0c 那么读事件就绪 xff0c 将该监听套接字fd添加到
  • IO多路转接之epoll

    github xff1a epoll代码 一 epoll 1 认识epoll 它是Linux内核为处理大批量句柄而做了改进的poll xff0c Linux下多路复用IO接口select poll的增强版本 xff0c 它能显著提高程序在大
  • IP地址与MAC地址缺一不可吗?

    答案是肯定的 xff0c 最近复习到了网络这块的知识 xff0c 才突然弄懂了 xff08 1 xff09 首先 xff0c 我们如果第一次将信息从A端发往B端 xff0c 那么信息需要从应用层到物理层一层一层进行封装 xff0c 到达对端
  • [剑指offer] 连续子数组最大和

    题目 xff1a 对于一个有正有负的整数数组 xff0c 请找出总和最大的连续数列 给定一个 span class hljs keyword int span 数组A和数组大小n xff0c 请返回最大的连续数列的和 1 思路 xff1a
  • Visual Studio连接wsl使用C/C++进行Linux开发

    首先打开Visual Studio xff0c 打开顶部菜单栏上的项目 然后选择属性 这样就会弹出一个窗口 xff0c 窗口的标题不重要 xff0c 我给项目起的名字叫Linux控制台项目 xff0c 他就显示成 Linux控制台项目 属性
  • 输入一个字符串,求字符串中包含的字符集合

    输入 xff1a abcqweracb 输出 xff1a abcqwer 一 剖析 采用数组的方式 xff0c 定义一个可以存放256个字符的数组 xff08 ASCII最多包含256个字符 xff09 xff0c 先将数组初始化1 xff
  • 求最小步数变为斐波那契数

    一 解析 xff1a 当我们一步一步走的时候 xff0c 一边计算斐波那契数 xff0c 一边计算左边的数和输入的N值进行差值运算 xff0c 直到N比斐波那契数小就直接退出 二 代码 span class hljs keyword int
  • 逆置链表

    题目 xff1a 将一个链表逆置 解析 xff1a 使用三个指针 xff0c 前 中 后 xff0c 改变中指针 xff0c 遍历后指针 ListNode ReverseList ListNode pHead span class hljs
  • 字符串中连续最长数字串

    一 题目要求 二 解析 使用左右下标来记录连续数字 xff0c 使用cur来记录最长连续数字的个数 三 代码 span class hljs preprocessor include lt iostream gt span using na
  • 输出链表中倒数第K个结点

    1 结构体类型 span class hljs keyword struct span ListNode span class hljs built in int span span class hljs keyword val span
  • C语言深度解剖

    一 关键字 1 关键字 是编译器能认识的特殊字符串符号 C语言共有32个关键字 xff0c 含sizeof xff0c 计算对象所占内存空间的大小 2 定义 创建一个对象并分配一块内存 3 声明 告诉编译器 xff0c 名字已经匹配到了一块
  • QT 实现窗口四周阴影

    网上好多写的不清楚 又搞了好长时间 这样应该最简单了 一 效果图 二 思路 1 先将所有窗口控件拖到一个QFrame里 xff0c 注意 xff0c QWidget与QFrame之间必须有间距 否则QFrame发散的阴影没有地方显示 2 设
  • cmd中执行批处理(.bat)文件,批处理文件调用python脚本

    记录我在cmd中操作遇到的一些问题 以及Bat脚本常用的一些命令 文章目录 一 bat批处理文件调用python脚本 xff0c 此时执行 bat文件出现了无模块的问题 xff08 安装python模块 xff09 二 cmd执行带参的ba