首页
windows cmd命令相关

Dos特殊字符转义方法

使用 psftp 命令连接ftp时,如果密码中包含 & 等特殊字符,会出现问题,须通过转义字符 ^ 进行转义

cmd常用特殊字符
image_1be04vo5n1em4iuh1r9f7rrqgq9.png-92.9kB

注意:变量里面用^符号会自动清理掉

set connect_test=psftp 60.205.141.206 -P 54891 -l root -pw 123^&GHF
echo %connect_test%
//输出结果如下,后面被处理成命令了

image_1bendqqcg1dbg7rh16jovl3r7mm.png-3.8kB

windows使用sftp连接上传文件

方案一:使用 putty 提供的sftp软件

  1. 将软件放到一个指定文件夹中:(比如:C:\Program Files (x86)

  2. 新建一个 bat 文件,比如 upload_data.bat,内容如下:

    //指定执行的路径为软件存放的路径,这里
    set PATH=C:\Program Files (x86);%PATH%
    psftp 192.168.0.100 -l root -pw 13456789 < upload_data.txt
    

    注意:
    登录命令:psftp 服务器地址 -P 端口 -l 用户名 -pw 密码 ,默认端口22

  3. sftp的操作写在upload_data.txt里面,用法参考

    //将本地D:\leangooDocument\leangoo2012文件夹上传到linux服务器/data/upload_data_backup中
     cd /data/upload_data_backup
     lcd D:\leangooDocument\
     put -r leangoo2012
    
  4. 执行批处理文件即可上传

方案二:使用ssh-for-windows连接linux

  1. 下载 openssh for windows 软件。
  2. cd C:\Program Files (x86)\OpenSSH\bin
  3. mkgroup -l >> ..\etc\group
  4. mkpasswd -l >> ..\etc\passwd
  5. net start opensshd

windows bat中得到当前时间

%DATE% 输出的是: yyyy/mm/dd 星期几 (例如:2008/12/18 星期四)
引用格式: %DATE:~x,y%
x = 起始坐标,y = 从x开始截取字符个数

//如: 
%DATE:~0,4% --> yyyy 
%DATE:~5,2% --> mm 
%DATE:~8,2% --> dd
//所以,得到当前日期(20170418)
%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%

windows cmd复制命令

set leangoo_website=D:\leangooDocument\0.部署说明\上线脚本_本地\leangoo1\leangoo%today%_website
echo d | xcopy D:\phpweb\leangoo\application %leangoo_website%\leangoo\application /e/h/y
echo d | xcopy D:\phpweb\leangoo\system %leangoo_website%\leangoo\system /e/h/y
xcopy D:\phpweb\leangoo\index.php %leangoo_website%\leangoo /y
  • copy时不用手动选择是文件还是文件夹: 在xcopy命令前加上echo dehco f
  • /e 表示复制所有子目录,包括空目录; /h 复制具有隐藏和系统文件属性的文件

删除命令

rd命令:删除一个目录
del命令 :删除文件
rd 命令删除文件夹,del 命令删除文件

// /q/s使用静默模式强制删除,不会出现提示信息
rd /q/s views\images
del /a/f/q test*.*

@echo off : 关闭回显

@echo off并不是DOS程序中的,而是DOS批处理中的。当年的DOS,所有操作都用键盘命令来完成,当你每次都要输入相同的命令时,可以把这么多命令存为一个批处理,从此以后,只要运行这个批处理,就相当于打了几行、几十行命令。

DOS在运行批处理时,会依次执行批处理中的每条命令,并且会在显示器上显示,如果你不想让它们显示,可以加一个echo off当然,“echo off”也是命令,它本身也会显示,如果连这条也不显示,就在前面加个“@”。

cmd choice选择

快速查找文件

FOR /F %%i IN ('dir D:\leangooDocument\db\历史脚本\%year%\%today%* /b') DO @set db_target_folder=%%i
echo d | xcopy D:\leangooDocument\db\历史脚本\%year%\%db_target_folder%\*.sql %db_script_folder%\db_script /y

xcopy排除某些文件

参考:

  1. openssh安装运行错误 1067
  2. openssh 在32位、64位操作系统上的安装配置
  3. OpenSSH for Windows 配置
  4. dos命令行choice命令使用详解
  5. Windows命令行(cmd)下快速查找文件(类似Linux下find命令)
  6. 巧用dir命令查找文件
  7. dos下将命令的执行结果赋给变量
  8. xcopy复制指定目录下的文件夹并且排除不需要的文件或者文件夹
  9. xcopy /exclude测试
  10. CMD批处理循环,太强大了