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. serializers进阶

    文章出处  https://www.cnblogs.com/pyspark/p/8607801.html [01]前言    serializers是什么?官网是这样的”Serializers all ...

  2. 第九节:ASP.NET Core 中多环境的使用

    一. 环境相关配置 1. 说明 ASP.NET Core 在应用启动时读取环境变量 ASPNETCORE_ENVIRONMENT, ASPNETCORE_ENVIRONMENT 可设置为任意值,但框架 ...

  3. 开发dubbo应用程序(一)入门demo详解

    1.简介: 引用自Dubbo官方文档简介: http://dubbo.apache.org/zh-cn/docs/user/dependencies.html 随着互联网的发展,网站应用的规模不断扩大 ...

  4. 整理:WPF中CommandBindings的用法

    原文:整理:WPF中CommandBindings的用法 目的:了解一下CommandBindings.InputBindings.ICommandSource中在WPF中扮演什么样的角色 Comma ...

  5. 数据库‘master’中拒绝CREATE DATABASE权限

    今天在创建数据库的时候,遇到了没有创建数据库权限的问题,后来百度了一下解决了该问题. 1.先用windows身份验证登录,在安全性下面的找到自己创建的登录名,双击,在弹出的对话框中为它赋予权限. 2. ...

  6. Fedora搭dokuwiki的步骤 以apache2.4为例

    官网下载dokuwiki的包,解压到/var/www/html/下 修改dokuwiki的权限.拥有者/组 为apache 安装PHP 在/etc/httpd/conf 创建dokuwiki的配置文件 ...

  7. SimHash算法--文章相似度匹配

    SimHash原理 1.SimHash背景 SimHash算法来自于 GoogleMoses Charikar发表的一篇论文"detecting near-duplicates for we ...

  8. 从零搭建一个简单的webpack环境

    1.npm Init 2.创建webpack.config.js文件,并配置入口和出口 3.Package.json的script中配置命令对应的操作 .安装webpack-dev-server 模块 ...

  9. vue + yarn 项目开发 (一)

    1.打开src文件夹中的main.js文件,添加引用element ui框架 import ElementUI from 'element-ui' import 'element-ui/lib/the ...

  10. Vue学习之监听methods、watch及computed比较小结(十一)

    一.三者之间的对比: 1.methods方法表示一个具体的操作,主要书写业务逻辑: 2.watch:一个对象,键是需要观察的表达式,值是对应回调函数.主要用来监听某些特定数据的变化,从而进行某些具体业 ...