cmd中执行批处理(.bat)文件,批处理文件调用python脚本
记录我在cmd中操作遇到的一些问题。Bat常用的一些命令一、.bat批处理文件调用了python脚本,此时执行.bat文件出现了无模块的问题。1.安装pip 包cmd 进入命令行输入:python -m pip install -U pip setuptools安装成功以后,在命令行中进入到Scripts文件夹,以便执行下面的命令,我的是C:\python\ScriptsWindow...
记录我在cmd中操作遇到的一些问题。以及Bat脚本常用的一些命令。
文章目录
一、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
)
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)