shell(Linux、Solaris) bat(windows) 含义
# rem 注释行
/【directory】/【directory】/.../【directory】/ 【disk】:\【directory】\【directory】\...\【directory】\ path
【变量】=【文件名】,LBSAM set 【变量】=【文件名】,BSAM 把文件名赋值给变量

【变量】=【设定值】

【变量】="【设定值】"

【变量】='【设定值】'

【变量】=【设定值】; export 【变量】

export 【变量】=【设定值】

set 【变量】=【设定值】 变量的赋值
unset 【变量】 set 【变量】= 变量的初始化

${【变量】}

$【变量】

%【变量】%

变量的引用

※如果变量在if语句和for循环中被赋值了的话,

在引用的时候需要用!【变量】!。

※如果使用!【变量】!,要添加(延迟环境变量)

setlocal enabledelayedexpansion

$【数字】

${【数字】}

%【数字】 shell/bat启动的时候,传入的第【数字】个参数

$1/%1 →启动时传入的第一个参数

【变量】=`basename $0 .sh` set 【变量】=%~n0

本shell/bat的文件名字赋值给变量

test1.sh/test.bat → 变量=test

【变量】=`dirname 【文件】` for %%i in ("【文件】") do (set 【变量】=%%~dpi)

取得所在文件路径赋值给变量

例 :

shell:

path1=`dirname /home/dir1/dir2/test.txt`

↓

path1=/home/dir1/dir2

bat  :

for %%i in ("D:\dir1\dir2\test.txt") do (

set path2=%%~dpi

)

↓

path2=D:\dir1\dir2

【变量】=`basename 【文件】` for %%i in ("【文件】") do (set 【变量】=%%~nxi) 取得所在文件路径赋值给变量

例 :

shell:

filename1=`dirname /home/dir1/dir2/test.txt`

↓

filename1=test.txt

bat  :

for %%i in ("D:\dir1\dir2\test.txt") do (

set filename2=%%~dpi

)

↓

filename2=test.txt

【变量】=$?  set 【变量】=%errorlevel% 上一个命令执行的结果赋值给变量
if [ 【条件】 ]; then
    【处理1】
else
    【处理2】
fi
if 【条件】 (
    【处理1】
) else (
    【处理2】
)

※shell里面的if语句(if test 【条件】)和

(if [ 【条件】 ])意思一样

 if [ $【变量】 -eq 【数值】 ]; then  if %【变量】% equ 【数值】 (  等于
 if [ $【变量】 -ne 【数值】 ]; then  if %【变量】% neq 【数值】 (  不等于
 if [ $【变量】 -lt 【数值】 ]; then  if %【变量】% lss 【数值】 (  小于
 if [ $【变量】 -le 【数值】 ]; then  if %【变量】% leq 【数值】 (  小于等于
 if [ $【变量】 -gt 【数值】 ]; then  if %【变量】% gtr 【数值】 (  大于
 if [ $【变量】 -ge 【数值】 ]; then  if %【变量】% geq 【数值】 (  大于等于
 if [ $【变量】 = "【字符串】" ]; then  if %【变量】%==【文字列】 (  等于
 if [ $【变量】 != "【字符串】" ]; then  if not %【变量】%==【文字列】 (  不等于
 if [ -e 【文件 or 文件夹】 ]; then  if exist 【文件 or 文件夹】 (  文件或文件夹存在
 if [ ! -e 【文件or 文件夹】 ]; then  if not exist 【文件 or 文件夹】 (  文件或文件夹不存在
 if [ -f 【对象】 ]; then  for %%A in ("【对象】") do (set 【变量】=%%~aA)
 if  "%【变量】:~0,1%"=="-" (

对象是文件

※shell里面如果是if [ ! -f 【对象】 ]; then的时候,对应的bat是

if  not "%【变量】:~0,1%"=="-" (

意思是判断对象是否是文件以外

 if [ -d 【对象】 ]; then  for %%A in ("【对象】") do (set 【变量】=%%~aA)
 if  "%【变量】:~0,1%"=="d" (
 对象是文件夹
 if [ -s 【文件】 ]; then  for %%A in ("【文件】") do (set 【变量】=%%~zA)
 if  %【变量】% gtr 0 (
 文件的size大于0
 `date '+%Y%m%d'`  %date:~0,4%%date:~5,2%%date:~8,2%  2018/9/30 → 20180930
 find 【路径】 -mtime +【数字】 -name "*" -type f -exec rm -f {} \;

PowerShell -Command "Get-ChildItem '【路径】'

-force | Where-Object {($_.Mode.Substring(0,1)

-ne 'd') -and ($_.LastWriteTime -lt (Get-Date).

AddDays(-【数字+1】))} | Remove-Item  -force"

将指定路径下更新日期在【数字+1】天以前的文件删除

例如:把路径下更新日期在7天之前的文件删除

shell: find 【路径】 -mtime +6 -name "*" -type f -exec rm -f {} \;

bat:PowerShell -Command "Get-ChildItem '【路径】' -force |

Where-Object {($_.Mode.Substring(0,1) -ne 'd') -and (

$_.LastWriteTime -lt (Get-Date).AddDays(-7))} | Remove-Item  -force"

source 【****.sh】

【****.sh】

 call 【****.bat】  调用其它文件
 `date '+%Y/%m/%d %H:%M:%S'`  %date% %time:~0,8%  2018/8/24 8:45:30 → 2018/08/24 08:45:30
 rm 【文件】  del /f /q 【文件】  删除
 rm -f 【文件】  del /f /q 【文件】  删除

rm -r 【文件名 or 文件夹】

rm -rf 【文件名 or 文件夹】

 ※文件的时候
del /f /q 【文件】
※文件夹的时候
rmdir /s /q 【文件夹】
 删除
 【命令】 | tee -a 【log文件】  DEL 【临时文件】
命令> 【临时文件】 2>&1
TYPE 【临时文件】
TYPE 【临时文件】 >>【log文件】
 
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     

windows下的批处理bat文件和Linux下的shell文件的互相转换的更多相关文章

  1. windows下编辑过的文件在Linux下用vi打开行尾会多出一个^M符号

    一般情况下,windows下编辑过的文件在Linux下用vi打开行尾会多出一个^M符号,如下图: 这是因为Windows等操作系统用的文本换行符和UNIX/Linux操作系统用的不同,Windows系 ...

  2. 怎么查这个文件在linux下的哪个目录

    因为要装pl/sql所以要查找tnsnames.ora文件..看看怎么查这个文件在linux下的哪个目录 find / -name tnsnames.ora 查到: /opt/app/oracle/p ...

  3. 解决Windows下文件在Linux下打开出现乱码的问题

    目录 问题 原理 解决 总结 参考资料 问题 前几天生病了,Java一直在看代码但是没跟着打,于是决定偷一波小小的懒,直接把教材的代码从Windows通过共享文件夹放到了Linux里面.但是编译的时候 ...

  4. windows cmd命令 批处理bat 导增量jar包【原】

    下载地址 https://pan.baidu.com/s/1cIyCbG 导jar包 @echo off setlocal enabledelayedexpansion echo ---------- ...

  5. 批处理bat实现创建、复制、删除文件及文件夹

    转自:http://blog.csdn.net/linda1000/article/details/10221285 1 建bat文件自动执行复制,删除命令. 例1:以下是复制cd.dll文件至win ...

  6. windows下写的脚本,在linux下执行失败

    Windows中的换行符为CRLF, 即正则表达式的rn(ASCII码为13和10), 而Unix(或Linux)换行符为LF, 即正则表达式的n. 在Windows和Linux下协同工作的时候, 往 ...

  7. [moka同学笔记]window下.htacess文件 与linux下.htacess文件

    windows下 # Turn on URL rewritingRewriteEngine On# Installation directoryRewriteBase /# Protect hidde ...

  8. Java执行cmd命令、bat脚本、linux命令,shell脚本等

    1.Windows下执行cmd命令 如复制 D:\tmp\my.txt 到D:\tmp\my_by_only_cmd.txt 现文件如图示: 执行代码: private static void run ...

  9. Python下的OpenCV学习 01 —— 在Linux下安装OpenCV

    一.OpenCV简要介绍 OpenCV是一个跨平台的计算机视觉库,可以运行在Windows.Linux.MacOS等操作系统上.OpenCV提供了众多语言的接口,其中就包含了Python,Python ...

随机推荐

  1. POJ-图论-最小生成树模板

    POJ-图论-最小生成树模板 Kruskal算法 1.初始时所有结点属于孤立的集合. 2.按照边权递增顺序遍历所有的边,若遍历到的边两个顶点仍分属不同的集合(该边即为连通这两个集合的边中权值最小的那条 ...

  2. Docker中nginx+tomcat实现负载均衡

    拉取tomcat镜像 docker pull tomcat 运行两个tomcat容器 docker run -d -p 8088:8080 --name tomcat8088 tomcat docke ...

  3. 【数据结构与算法】单链表操作(C++)

    #include <stdio.h> #include <malloc.h> /*单链表节点定义*/ typedef struct LNode { int data; //da ...

  4. sqlserver分布式事务

    启动服务中的Distributed Transaction Coodinator后 创建链接服务器ender-pc\subx 设定连接服务器RPC OUT 以及RPC属性为True 实验一下代码 创建 ...

  5. MQTT --- 操作行为

    会话状态 为实现QoS等级1和QoS等级2协议流,客户端和服务端需要将状态与客户标识符相关联,这被称为会 话状态.服务端还将订阅信息存储为会话状态的一部分.会话可以跨越一系列的网络连接.它持续到最新的 ...

  6. SpringBoot引入第三方jar包或本地jar包的处理方式

    在开发过程中有时会用到maven仓库里没有的jar包或者本地的jar包,这时没办法通过pom直接引入,那么该怎么解决呢 一般有两种方法 第一种是将本地jar包安装在本地maven库 第二种是将本地ja ...

  7. InstantiationAwareBeanPostProcessor 分析

    Cglib之Enhancer创建动态代理https://blog.csdn.net/yaomingyang/article/details/82762697 https://blog.csdn.net ...

  8. C# ThreadStart中如何带参数

    1.ThreadStart 线程执行带参数的方法,new Thread(new ThreadStart(delegate { ThreadTask(firstPage, lastPage); })); ...

  9. 开源串口 Ymodem 上位机软件

    概述 上位机使用Qt开发,计划整合多个工具为一体,用作以后的调试工具. 当前完成功能: 1.串口调试 支持hex和ascii 码发送,接受. 支持自动添加回车换行. 支持定时发送,最短间隔100ms, ...

  10. 服务发现框架选型: Consul、Zookeeper还是etcd ?

    背景 本文并不介绍服务发现的基本原理.除了一致性算法之外,其他并没有太多高深的算法,网上的资料很容易让大家明白上面是服务发现.想直接查看结论的同学,请直接跳到文末.目前,市面上有非常多的服务发现工具, ...