bat命令和常用

1.Putty小工具

在这里插入图片描述

1.1通过window远程访问linux,并执行命令

#linux中已经设置mysqldump的登录与账号密码,所以这里不需要

plink -ssh  -pw  123456  root@192.168.184.132  "mysqldump mysql>/data/mysql.sql"
1.2.通过window远程访问linux 的mysql,并传输文件到本地目录

下载 上传
###下载

pscp -sftp   -pw  123456  root@192.168.184.132:/data/mysql.sql   F:\  

#成功,输出信息如下

msyql.sql        |  574kB | 574.3kb/s |ETA:00:00:00 |100%

###上传
#成功,输出信息如下

pscp -sftp   -pw  123456    F:\  root@192.168.184.132:/data/mysql.sql 
1.3Microsoft SQL Server的工具相关

bcp SYBASE公司提供的。实用工具可以在 Microsoft SQL Server 实例和用户指定格式的数据文件间大容量复制数据。
在这里插入图片描述

BCP可以执行的4种操作
(1)导入
这个动作使用in命令完成,后面跟需要导入的文件名。
(2) 导出

bcp OIW_32769..ashare_ordwth  out ashare_ordwth.txt  -c -Usa -P10208130 -S10.208.130.6

解释:
OIW_32769…ashare_ordwth的特点其中…忽略了dbo
dbo为SQL Server的特点结构
例如图:
在这里插入图片描述

这个动作使用out命令完成,后面跟需要导出的文件名。
(3) 使用SQL语句导出
这个动作使用queryout命令完成,它跟out类似,只是数据源不是表或视图名,而是SQL语句。
(4) 导出格式文件
这个动作使用format命令完成,后而跟格式文件名。

1.4应用组件和命令使用
1.winrar

winrar
a :备份所有文件;
-r:备份目录和子目录;
-af-指定压缩文件格式
ep 从名称中排除路径
ep1表示不把路径%USERPROFILE%保存在压缩文件中

2.符号

*任意的

dir E:\*.txt  搜索E盘下面任意的txt文件

-\范围表示符 for中会应用
+ copy命令里面会用到它,表示将很多个文件合并为一个文件

例如:copy E:\tmp.txt+E:\shell.txt  E:\All.txt

:标签定位符
例如:goto

! 当启用变量延迟时,使用!!将变量名扩起来表示对变量值的引用;在set /a中表示逻辑非。比如set /a a=!0,这时a就表示逻辑1

  setlocal enabledelayedexpansion
  echo.%nbr%.  !p%nbr%!
  Endlocal
‘’

在for/f中表示它们所包含的内容当作命令行执行并分析它的输出。

^ 取消转义字符,即将所有转义字符的转义作用关闭。同时还可以连接后面的字符

echo one two ^
there  ^ hhhhhh ^s
fix

输出内容为one two there hhhhh fix

&执行多条命令,不理会是否成功

echo xxx & echo bbb

xxx
bbb

&&顺序执行多条命令,前一条成功,后面才执行

echo xxx && echo  bbb

xxx
bbb

||顺序执行多条命令,前一条成功,后面不执行

echo xxx ||  echo  bbb

xxx

|结果输出个后面
输出给后面的,并查询

echo  xxxxx|findstr  /I   x

Xxxxx

>>输出追加
>>输出重定向
<< 输入追加
<输入重定向

3.系统内置变量
echo  %USERNAME%  #用户名
echo  %~dp0   #当前盘符路径bat脚本中可以实现
echo  %~sdp0   #当前盘符短路径bat脚本中可以实现
echo  %~d0    #当前盘符bat脚本中可以实现
echo  %~f0     #当前盘符全路径bat脚本中可以实现
echo  %cd%  #当前盘符与路径
set xath=%~dp0
echo %xath% 
set xbth=%~d0
echo %xbth%
set xcth=%~f0
echo %xcth%
echo  %~sdp0
echo %computername%
4.引用

call 调用批处理脚本
%1~%9 传参数

5.命令

echo 输出内容
@echo off 回显,把默认输出的路径屏蔽
echo. 换行输出

color 第一个为背景。第二个为字体颜色
例如:color a 设定字体颜色为淡绿色,背景为黑色默认 color c
0 = 黑色 8 = 灰色
1 = 蓝色 9 = 淡蓝色
2 = 绿色 A = 淡绿色
3 = 湖蓝色 B = 淡浅绿色
4 = 红色 C = 淡红色
5 = 紫色 D = 淡紫色
6 = 黄色 E = 淡黄色
7 = 白色 F = 亮白色

del /Q /F 静默前置删除

例:

del /q  /f  F:\del.txt

findstr 搜索字符信息 /b begin 搜索开始部分 /i ignore不区分大小写

tmp.txt文本文件内容
hello1 A
hello2 B

findstr  /b  /i  "hello"   F:\tmp.txt   

cls清除回显(显示的内容)
dir 显示文件列表
/s 子目录 /p 分页显示

dir  /s   E:\*.txt
dir  /s /p E:\*.txt

title,是标题命令,执行bat程序后,标题将显示于窗口上面。
set 变量赋值,/a数学运算表达式,/p提示用户输入,variables::变量的截取与操作

set  chioce=99;变量赋值
set /a   a=1,b=2,c=a+b  #数学运算,c=3
set  /p a='values  is  string' 
echo  %a%     #提示用户输入,赋值给a。取出a值变量
set  /p b1='values  is  string'
'values  is  string'hello  word  and  super
echo %b1%
hello  word  and  super
echo %b1:~0,2%  #截取出从第一位到字符到第二个字符。下标取值
he
echo %b1:~0,-2%  #截取出从第一位到字符到倒数第二个字符。下标取值
hello  word  and  sup
echo %b1: =$%  #替换空格为$

:pause 暂停执行。(提示:按照任意命令继续,最好加>null,会把任意命令继续的内容重定向为空)

注释rem 与 ::
tasklist 显示进程列表
taskkill 终止进程 /F 强制 /PID 根据pid
copy 复制 /S 复制包含子目录文件,不带空目录 /E 复制包含子目录文件,带空目录
/y直接覆盖,不提醒

copy  F:\tmp.txt  E:\
覆盖 E:\tmp.txt 吗? (Yes/No/All): y
已复制         1 个文件。

date 查看年月日 星期

echo %date%
2019/07/16 周二
set  ymd=%date:~0,10%  #取年月日
set ymd=%ymd:/=%   #取年月日/替换为-
echo  %ymd%
2019-07-16
set   ymc=%date:~5,5%  #取月日
echo %ymc:/=-%
07-16

time 查看时分秒,微秒

set   times= %time:~0,8%   #取时分秒
15:53:20
echo  %times::=$%    #:号做替换为$
15$53$20

mode con 设置bat的设置窗体大小
设置 宽 行

mode con cols=30 lines=20 

Shift更改批处理文件处理参数
例举:

@echo off
:round
if "%1"=="" goto cmd1
echo %1内容如下:
type %1
echo.
shift
goto round

:cmd1
echo 没有获取到参数,结束脚本.
goto end

:end

Cmd控制台下:

E:\filename.bat  a.txt   b.txt

解释:脚本中只接受一个参数。会根据参数传入数值,先传入a.txt ,然后再传入b.txt

setlocal延迟环境变量扩展
Setlocal延迟环境变量。对于bat语句有预处理的机制,就是命令做检查前。会被初始化默认值,但是预处理过后,执行bat命令并不能改变变量的值。就是说,而每条命令语句之间不能影响到变量的改变。
行命令不能等于条命令。行是编码书写的标准。但是条是命令所占的行内容为条(命令执行独占一行,或者复合语句的占多行,但只是一条)
例举

@echo  off
set num=1
echo %num%
if %num% == 1 (
echo  equ
set %num%=2
echo %num%
)
pause > nul

结果:num=1
看到num=1。复合语句中改变num并不起作用。因为没有变量延迟,所以初始化为num=1后。无法改变num值。所以加个延迟试下

if %num% == 1 (
echo  equ
setlocal enabledelayedexpansion
echo !num!
set num=3
echo !num!
endlocal
)
echo %num%

输出结果为1 3 1 定义了局部的,并不影响全局的num

goto所指定的标号(标号即label,标号用:后跟标准字符串来定义)

如:

goto end
 
:end 
echo this is the end 

GOTO :EOF #CMD 返回并将等待下一条命令
tasklist 显示进程列表
taskkill /F /PID 应用名称/ip kill进程
taskkill /F /PID cmd.exe
taskkill /F /PID 124010
:子程序

goto  start

:start
echo  son -----------------------------
6.语句 if while for
6.1 If语句

IF [NOT] ERRORLEVEL number command #判断执行结果
    IF [NOT] string1==string2 command #判断字符串
    IF [NOT] EXIST filename command #判断文件是否存在
if not defined 判断变量不存在
If defined 判断变量存在

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

例1

###判断是否执行成功,成功则提示ok,失败也提示failed
copy  /Y F:\tmp.txt   E:\
if  %ERRORLEVEL% == 0 (
echo  runing  ok
) else (
echo  runing   failed
)
Pause

判断字符 相等的yes equ,失败提示no equ

set  string1=helloA1
set  string2=helloA2
if  %string1% == %string2% (
echo    yes equ
) else (
echo     no equ
)
pause

判断文件存在

set filename=F:\tmp.txt
if  exist   %filename% (
echo  file exist
) else (
echo  file  no  exist
)
pause 

判断实例

if  1 NEQ  1 ( 
echo  ok-----------------
 ) else (
echo  off--------------
 )
6.2 for语句

FOR /F [“options”] %%i IN (file) DO command
FOR /F [“options”] %%i IN (“string”) DO command
FOR /F [“options”] %%i IN (‘command’) DO command
file代表一个或多个文件
string 代表字符串
command代表命令
[“options”] 可选

delims和tokens
delims 用来告诉for每一行应该拿什么作为分隔符,默认的分隔符是空格和tab键
Delims可以指定多个分割符空格,逗号
tokens作用就是当你通过delims将每一行分为更小的元素时,由它来控制要取哪一个或哪几个
例举 Tokens 1,2-3,* 取1,2,3,剩余 一共4个值,echo %%a %%b %%c %%d
Skip忽略文件的前多少行
Eol 用来指定当一行以什么符号开始
usebackq 增强型参数。可有可无。

tmp.txt
Hello1 A
Hello2 B
格式语句1
例如1:

for  /f  %%i in (F:\tmp.txt)  do  (
 echo  %%i
)

输出结果
Hello1
Hello2
注解:默认以空格作为分割符,所以取不出 A 与 B

例如2:

for  /f  "delims=;" %%i in (F:\tmp.txt)  do  (
 echo  %%i
)
pause

输出结果
Hello1 A
Hello2 B
注解:以;做分割,取消了默认空格分割,所以显示每行的所有

例如3
如果是以空格为分割,直接取
Tmp.txt
Hello1 A
Hello2 B

for  /f  "tokens=2 " %%i in (F:\tmp.txt)  do  (
 echo  %%i
)
pause

输出结果 A B
例3升级3.1
如果是以其他符号为分割,结合使用

Tmp.txt
Hello3;C
Hello4;D

for  /f  "delims=; tokens=2 " %%i in (F:\tmp.txt)  do  (
 echo  %%i
)
pause

输出结果
C D

例3升级3.2
如果是以其他符号为分割,输出第一个和第三个值
Tmp.txt
Hello3;C;A
Hello4;D;A

for  /f  "delims=; tokens=1,3" %%a  in (E:\tmp.txt)  do  (
 echo  %%a  %%b
)
pause

输出结果
Hello3 A
Hello4 B

例如4
取出除了第一行,排除有x为开始的行,以;分割 取1与2值

for  /f  "skip=1 eol=x delims=; tokens=1,2"  %%a in (E:\tmp.txt)  do  (
 echo  %%a  %%b
)

结果
hello2 B
hello3 C
hello4 D

实例5
以空格为分割

for  /f  "tokens=1,2 delims=  "  %%a in (E:\tmp.txt)  do  (
 echo  %%a  %%b
)

格式语句1
#取字符串以;分割 取第二值与剩余的值

for  /f  "delims=; tokens=2,*"  %%a in ("hello;A;word and  mi  to")  do  (
 echo  %%a  %%b
)

格式语句2
解析:除了前三行,取第1列与3列,以空格分割。遍历命令tasklist(取应用名与PID)

for  /f  "skip=3 tokens=1,3 delims= "  %%a in ('tasklist')  do  (
 echo  %%a  %%b
)

输出
System Idle
System 4
Registry 104
smss.exe 488
csrss.exe 596
wininit.exe 696
csrss.exe 712
services.exe 768
winlogon.exe 804
lsass.exe 848

For高级应用

注释:除了第1行,不以x开头的,以;分割。取1列与3列值
Tmp.txt文件内容

Hello A
Hello B
Hello3;C;A
Hello4;D;A

for  /f  "skip=1 eol=x delims=; tokens=1,2"  %%C in (E:\tmp.txt)  do  (
::set  %%C %%D
 set %%C=%%D
)
echo  -------------
echo %hello3%

执行:获得hello3值是A
评价:可以不用再写脚本时候定义大量的变量。可以直接引用变量做操作

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
常用批处理 bat 程序├─BAT优化│ -禁止修改、写入SYSTEM32目录.BAT│ -让XP不用图片查看器看图(略缩图).BAT│ DEL.JPG.SCR.BAT│ DELTEMP.BAT│ 关闭系统信使.BAT│ 减少非法关机等待扫描时间.BAT│ 删除系统备份文件.BAT│ 卸载INTEL集成显卡如同鸡胁的显面增强.BAT│ 卸载XP内置ZIP.BAT│ 恢复使用XP注册表.BAT│ 注册所有DLL.BAT│ 清除输入法外的所有RUN运行项.BAT│ 禁止修改、写入SYSTEM32目录.BAT│ 禁用危险的默认共享.BAT│ 让XP不用图片查看器看图(略缩图).BAT│ ├─其它类│ 2000XP停止打印.bat│ dir.bat│ sxs.exe 的查杀.bat│ sz.reg转换成reg.bat.bat│ 全盘删除所有文件夹下的_desktop.ini.bat│ 删除大小和类型一样的文件.bat│ 删除所有分区的默认共享.bat│ 将cwindows.复制到当前目录并显示进度.bat│ 打开快捷方式指向的目录.bat│ 批处理读注册表的Run下面的值.bat│ 按扩展名分类.bat│ 显示c盘~z盘.bat│ 枚举当前目录及子目录大小.bat│ 枚举显示.bat│ 查找最新的文件.bat│ 每个目录占用的空间.bat│ 篮球飞人火爆版.cmd│ 结束进程.bat│ 解锁注册表.BAT│ 输出倒文.bat│ 锁注册表.BAT│ ├─系统类│ C盘转换为NTFS格式.cmd│ dos下重启.bat│ guest.bat│ win2000关机命令.bat│ WIN2003 IIS最小权限分配.bat│ winxp修改计算机名.bat│ xp下确定最后的盘符.bat│ 不显示扩展名.bat│ 不显示隐藏文件.bat│ 使用WMI别名获取CPU信息.bat│ 关闭IDE通道检测.bat│ 列举进程.bat│ 判断光驱是否可用.bat│ 判断光驱里有无光盘.bat│ 判断分区格式.bat│ 刷新策略.bat│ 取得硬盘数.bat│ 右键添加bat.bat│ 右键添加打开MS-DOS.bat│ 弹出光驱.bat│ 改变我的文档路径.bat│ 显示扩展名.bat│ 显示用户名.bat│ 显示隐藏文件.bat│ 更改电源管理方式.bat│ 更改盘符.bat│ 更改系统启动菜单的时间.bat│ 查看工作组.bat│ 查看物理内存.bat│ 查看用户是否存在.bat│ 查看电脑硬件信息.bat│ 查看驱动器.bat│ 禁止保留文档记录.bat│ 给每个盘添加卷标.cmd│ 被锁定帐户.bat│ 重命名administrator账号.bat│ └─网络类 ARP本机绑定.bat XP服务优化批处理.bat 中文显示ping结果.bat 断开网络联结.bat 显示网络配置.bat 显示自己的IP.bat 查看网关的MAC地址.bat 查看进程使用的端口.bat 检查网络信息.bat 百度关键字搜索.bat 绑定网关的批处理及预留维护提到.bat 自动改回主页.bat 自定义配置网络ip、网关、dns.bat 网络信息.txt
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值