Window bat批处理命令

        

目录

      查看帮助

1、创建目录 mkdir

2、创建文本文件 echo

3、删除文件和文件夹  rd、del

4、判断 if

5、复制 copy、xcopy

6、设置set

7、调用 call

8、循环 for

9、注释 rem ::

10.更改名字 ren

11、移动文件 move

12、启动其他程序 start



 
 

      查看帮助

        win+r 运行程序中输入“cmd”打开命令行。

        查看帮助文档,help命令查看常用命令。查看某个命令的使用方法:help 命令关键词;

         如查看copy使用:help copy。

         有时发现盘符切换很困难,先切换盘符再进入指定路径。 cmd命令行切换盘符: 比如D盘切换到F盘(盘符+:)

           如果文件路径中存在空格,该路径需要使用“”标注。

1、创建目录 mkdir

        在当前文件夹创建文件folder。

mkdir folder

2、创建文本文件 echo

将文本字符串"tmp1file0" 、日期 %date%和时间 %time%写入到folder\file0.txt文件。“>”输出定向符号,表示将内容输出到什么文件。">>" 在文件后追加写入。

echo "tmp1file0" %date% %time% > folder\file0.txt
echo "second write" >> folder\file0.txt

其中:

echo 命令表示显示消息,或者启用或关闭命令回显。

echo off 关闭回显

echo on 打开回显

@ 放在命令行首表示关闭改行命令回显

@ echo off 不显示echo off

3、删除文件和文件夹  rd、del

rd删除目录,del 删除一个或多个文件。

“if exist folder ” 判断folder文件是否存在,如果存在进行删除; /s 表示删除本目录外,还删除所有子目录;/q表示安静模式,不需要确认。

mkdir xcopy_folder
mkdir xcopy_folder\childFold

if exist xcopy_folder(rd /s/q xcopy_folder)

del folder\file0.txt 

4、判断 if

        (1) 判断文件是否存在

@if exist folder0\file0.txt (
 echo  folder0\file0.txt exists.
) else (
mkdir folder0
echo "tmp1file0" %date% %time% > folder0\file0.txt
)

@if exist folder0\file0.txt (echo  folder0\file0.txt exists.)

pause
rd  folder0 /s/q 

注意:if else 使用一定严格遵照如下格式,否则会不识别。if else 结构写在同一行完全没问题,但是分行的时候要注意,") else ( "三者之间是两个空格,第一个“()”前一个空格。

         (2)判断字符串相等

set str1="soar boy"
set str2="soar boy"

if %str1% == %str2% (
	echo str1  equals str2. 
)

         (3) 判断某变量是否存在

:: 判断某变量是否存在
if defined str1 ( echo str1 has been defined.)

          (4) 判断数值大小

EQU - 等于  NEQ - 不等于 LSS - 小于 LEQ - 小于或等于 GTR - 大于 GEQ - 大于或等于

:: 判断数值大小 set /a 表示按照数值方式设置
set /a value0=6 
set /a value1=8 
if %value0% lss %value1% ( echo %value0% less %value1%)
if %value1% gtr %value0% ( echo %value1% less %value0%)

        (5) 命令操作返回值

::返回值
xcopy folder0\file0.txt %cd% 
echo %errorlevel%
if %errorlevel% == 0 ( echo succeed to copy folder0\file0.txt %cd% ) 

xcopy folder0\file5.txt %cd% 
echo %errorlevel%

        根据返回值 %errolevel%判断操作状态。 

5、复制 copy、xcopy

copy:将一份或多份文件复制到另一个位置。

xcopy :复制文件和目录树。

copy 复制文件,目标文件路径不存在不会自动创建;xcopy 复制操作目标目录不存在会自动创建。

xcopy 命令参数:

  /E           复制目录和子目录,包括空目录。

  /EXCLUDE:file1[+file2][+file3]...               指定含有字符串的文件列表。每个字符串在文件中应位于单独的一行。如果任何字符串与复制文件的绝对路径的任何部分相符,则排除复制该文件。例如,指定如 \obj\ 或 .obj 的字符串会分别排除目录 obj 下面的所有文件或带有.obj 扩展名的所有文件。

  /I           如果目标不存在,且要复制多个文件,
               则假定目标必须是目录。
  /Q           复制时不显示文件名。
  /F           复制时显示完整的源文件名和目标文件名。

复制命令还有robocopy

@echo off
@rem Prapare: create  file0.txt file2.txt in folder.
mkdir folder
echo "tmp1file0" %date% %time% > folder\file0.txt
echo "tmp1file1" %date% %time% > folder\file2.txt
echo %cd%folder includes %time%:
dir folder

@rem rename folder\file2.txt to folder\file1.txt
ren folder\file2.txt file1.txt
echo %cd%folder includes %time%:
dir folder
pause

@rem copy multiple files,if destination path does not exist, not automaticly create the path;
mkdir copy_folder
copy folder\*.*  copy_folder\
pause

@rem xcopy复制一个文件夹到另一个路径下,目标路径不存在会自动创建
@if not exist xcopy_folder (
	mkdir %cd%\folder\childfile0 
	xcopy folder xcopy_folder\folder /e /i /f
if %errorlevel% == 0 (
 echo "xcopy folder xcopy_folder/folder /e /i" succeeded. 
)
)

pause
rd xcopy_folder copy_folder folder /s /q 

6、设置set

     单纯的set 命令可以查看所有的环境变量,set | find “环境变量名称” 可以查看某个环境变量。

设置临时环境变量启动vs 2017:

set QTDIR=F:\SoftwareInstalling\Qt\Qt5.13.0\5.13.0\msvc2017
set Path=%Path%;%QTDIR%\bin;
start " " "D:\Users\username\Desktop\Visual Studio 2017.lnk"

7、调用 call

         call调用另一个脚本文件*.bat.

8、循环 for

 查看for帮助文档:help for > for-help.txt

在批处理(*.bat)程序中使用 FOR 命令时,指定变量请使用 %%variable而不要用命令行中的%variable。变量名称是区分大小写的,所以 %i 不同于 %I.

   (1)  FOR %variable IN (set) DO command [command-parameters]

  %variable  指定一个单一字母可替换的参数。
  (set)      指定一个或一组文件。可以使用通配符。
  command    指定对每个文件执行的命令。
  command-parameters  为特定命令指定参数或命令行开关。

待完善................

@echo off
@rem 查看当前目录下有哪些文件
for %%i in (*.*) do echo "%%i"
pause

@rem 路径中有空格需要加“” 遍历指定目录下某个格式的文件
for %%I in ("C:\Program Files\Intel\WiFi\*.log") do echo "%%I"
pause

@rem 将所有脚本文件复制到指定目录下
set src_path=%cd%
mkdir %src_path%\des_folder
for %%I in (%src_path%\*-*.bat) do (
	echo %%I
	copy %%I %src_path%\des_folder
)
rd %src_path%\des_folder
pause

9、注释 rem ::

rem与::等价后跟注释文本。隐藏注释文本:@rem 该条注释不会回显到命令行

10.更改名字 ren

ren:重命名文件,等价于rename。用法:
        ren [drive:][path]filename1 filename2.

请注意,你不能为目标文件指定新的驱动器或路径。

@echo off
mkdir folder
echo "tmp1file0" %date% %time% > folder\file0.txt
echo "tmp1file1" %date% %time% > folder\file2.txt
echo on

@rem 检查folder\file1.txt
ren folder\file2.txt  file1.txt
pause

@rem 批量修改指定名称的文件
ren folder\*.txt  *.txttmp
pause

rd folder /s /q

11、移动文件 move

要移动至少一个文件:
MOVE [/Y | /-Y] [drive:][path]filename1[,...] destination

要重命名一个目录:
MOVE [/Y | /-Y] [drive:][path]dirname1 dirname2

  [drive:][path]filename1 指定你想移动的文件位置和名称。
  destination             指定文件的新位置。目标可包含一个驱动器号和冒号、一个目录名或组合。如果只移动一个文件并在移动时将其重命名,你还可以包括文件名。
  [drive:][path]dirname1  指定要重命名的目录。
  dirname2                指定目录的新名称。

  /Y                      取消确认覆盖一个现有目标文件的提示。
  /-Y                     对确认覆盖一个现有目标文件发出提示。

命令行开关 /Y 可以出现在 COPYCMD 环境变量中。这可以用命令行上的 /-Y 替代。默认值是,除非 MOVE 命令是从一个批脚本内执行的,覆盖时都发出提示。

12、启动其他程序 start

-----------------------------------20210918--------------------------------

13 、脚本中 %cd%和%~dp0的区别

在目录下"D:\"新建名为cdp0.bat的脚本,脚本内容:

@echo off
echo %%cd%%    %cd% 
echo %%~dp0%%  %~dp0%

进入E盘 “E:\”目录 ,打开命令行执行:D:\cdp0.bat

 %cd% 表示命令行所在当前目录位置

%~dp0% 表示脚本所在位置

----------------------------------------------2022年3月1日---------------------

练习脚本下载地址:https://download.csdn.net/download/a_Treasure/23476698

参考:https://www.jb51.net/article/194036.htm

           https://www.jb51.net/article/18973.htm

 

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值