原文:https://www.cnblogs.com/caiguodong/p/10308255.html

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下的批处理bat文件和Linux下的shell文件的互相转换

    shell(Linux.Solaris) bat(windows) 含义 # rem 注释行 /[directory]/[directory]/.../[directory]/ [disk]:\[di ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. Linux下面rsync 实现 完全一致的同步方法

    1. 在某些特殊的linux机器上面, 比如龙芯后者是飞腾服务器,部分工具不太好用, 需要使用x86弄好之后进行同步过去, 这个时候scp 最简单但是网络流量非常大, 不如使用rsync, rsync ...

  2. 获取特定端口java进程的路径的shell脚本

    获取特定端口java进程的路径的shell脚本 ll /proc/`lsof -i:5200 |grep ^java |awk '{print $2}' |uniq` |grep cwd |cut - ...

  3. 某环境私有云 rpm 包安装失败总结

    1. 最近公司同事说一个项目搭建环境时 rpm 安装mysql数据库会报错 错误图片主要如下: 第一个错误提示是 提示 /etc/host.conf line 2: bad command `nosp ...

  4. 【DS】【AtCoder】Pakencamp 2022 Day2 H

    2023.6.30 Problem Link 有 \(n\) 个帮派在打架,每个帮派有一个大小 \(a_i\),每相邻两个帮派有一个仇恨度 \(b_i\).现在有 \(Q\) 次单点修改 \(a_i\ ...

  5. 【遇到一个怪异的问题】使用embed来加载模版,只要写在init()函数中就会导致HTTP服务出错

    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 经过反复测试,只要换一个写法就能开启/重现这个怪异的问题. ...

  6. 通杀无限 debugger,目前只有 1% 的人知道!

    前言 相信很多小伙伴在进行 web 逆向的时候,都遇到过无限 debugger.最简单的方法,在 debugger 位置,点击行号,右键 Never pause here,永远不在此处断下即可.但是这 ...

  7. 情侣纪念日网站html5源码教程

    个人名片: 对人间的热爱与歌颂,可抵岁月冗长 Github‍:念舒_C.ying CSDN主页️:念舒_C.ying 个人博客 :念舒_C.ying 预览图 直接进入我的网站吧 >> Z_ ...

  8. Solon 框架启动为什么特别快?

    思来想去!可能与 Solon 容器的独立设计有一定关系. 1.Solon 注解容器的运行特点 有什么注解要处理的(注解能力被规范成了四种),提前注册登记 全局只扫描一次,并在扫描过程中统一处理注解相关 ...

  9. 8.5 C++ 继承与多态

    C/C++语言是一种通用的编程语言,具有高效.灵活和可移植等特点.C语言主要用于系统编程,如操作系统.编译器.数据库等:C语言是C语言的扩展,增加了面向对象编程的特性,适用于大型软件系统.图形用户界面 ...

  10. 4.2 Inline Hook 挂钩技术

    InlineHook 是一种计算机安全编程技术,其原理是在计算机程序执行期间进行拦截.修改.增强现有函数功能.它使用钩子函数(也可以称为回调函数)来截获程序执行的各种事件,并在事件发生前或后进行自定义 ...