windows下的批处理bat文件和Linux下的shell文件的含义
原文: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文件的含义的更多相关文章
- windows下编辑过的文件在Linux下用vi打开行尾会多出一个^M符号
一般情况下,windows下编辑过的文件在Linux下用vi打开行尾会多出一个^M符号,如下图: 这是因为Windows等操作系统用的文本换行符和UNIX/Linux操作系统用的不同,Windows系 ...
- 怎么查这个文件在linux下的哪个目录
因为要装pl/sql所以要查找tnsnames.ora文件..看看怎么查这个文件在linux下的哪个目录 find / -name tnsnames.ora 查到: /opt/app/oracle/p ...
- windows下的批处理bat文件和Linux下的shell文件的互相转换
shell(Linux.Solaris) bat(windows) 含义 # rem 注释行 /[directory]/[directory]/.../[directory]/ [disk]:\[di ...
- 解决Windows下文件在Linux下打开出现乱码的问题
目录 问题 原理 解决 总结 参考资料 问题 前几天生病了,Java一直在看代码但是没跟着打,于是决定偷一波小小的懒,直接把教材的代码从Windows通过共享文件夹放到了Linux里面.但是编译的时候 ...
- windows cmd命令 批处理bat 导增量jar包【原】
下载地址 https://pan.baidu.com/s/1cIyCbG 导jar包 @echo off setlocal enabledelayedexpansion echo ---------- ...
- 批处理bat实现创建、复制、删除文件及文件夹
转自:http://blog.csdn.net/linda1000/article/details/10221285 1 建bat文件自动执行复制,删除命令. 例1:以下是复制cd.dll文件至win ...
- windows下写的脚本,在linux下执行失败
Windows中的换行符为CRLF, 即正则表达式的rn(ASCII码为13和10), 而Unix(或Linux)换行符为LF, 即正则表达式的n. 在Windows和Linux下协同工作的时候, 往 ...
- [moka同学笔记]window下.htacess文件 与linux下.htacess文件
windows下 # Turn on URL rewritingRewriteEngine On# Installation directoryRewriteBase /# Protect hidde ...
- Java执行cmd命令、bat脚本、linux命令,shell脚本等
1.Windows下执行cmd命令 如复制 D:\tmp\my.txt 到D:\tmp\my_by_only_cmd.txt 现文件如图示: 执行代码: private static void run ...
- Python下的OpenCV学习 01 —— 在Linux下安装OpenCV
一.OpenCV简要介绍 OpenCV是一个跨平台的计算机视觉库,可以运行在Windows.Linux.MacOS等操作系统上.OpenCV提供了众多语言的接口,其中就包含了Python,Python ...
随机推荐
- Linux执行SQLSERVER语句的简单方法
背景 因为WTF的原因.经常有人让执行各种乱七八槽的删除语句 因为产品支持了10多种数据库. 这个工作量非常复杂. 为了简单起见,想着能够批量执行部分SQL. 其他的都处理过了,但是SQLSERVER ...
- 基于华为fusionstorage的块存储CSI
承接上文,块存储的CSI要比对象存储复杂一些,但总的处理逻辑还是一致的.下面以华为fusionstorage的CSI为例进行介绍,该插件支持了多个后端存储,如fusionstorage和oceanst ...
- 使用Java读取Excel文件数据
通过编程方式读取Excel数据能实现数据导入.批量处理.数据比对和更新等任务的自动化.这不仅可以提高工作效率还能减少手动处理的错误风险.此外读取的Excel数据可以与其他系统进行交互或集成,实现数据的 ...
- 如何通过gRPC传输文件
在gRPC中,可以通过将文件分割成多个小块,然后使用流式RPC将这些小块发送到服务器来传输文件.以下是一个简单的示例,展示了如何在gRPC中实现文件传输. 首先,我们需要定义一个服务来处理文件传输.在 ...
- Fabric配置块结构解析
本文是区块链浏览器系列的第二篇. 上一篇介绍了交易块中的数据结构,这一篇介绍区块链网络中的配置块数据结构. 这两种区块中数据结构内容的区别主要Payload结构体中的Data域中的内容,接下来将以类图 ...
- 使用 NuGet.Server 创建和部署 ASP.NET Web 应用程序搭建私有Nuget服务器
使用 NuGet.Server 创建和部署 ASP.NET Web 应用程序搭建私有Nuget服务器 在Visual Studio中,选择"新建>文件>"Project ...
- 从零开始配置 vim(12)——主题配置
在我们进一步增强vim的功能之前,我们先为vim准备一个漂亮的主题,毕竟对着一个丑陋原始的界面多少有点提不起劲来进行编程.长时间对着丑陋的界面多多少少会产生抑郁情绪的.下面推荐几款我觉得还不错的主题插 ...
- 三线表制作(word)
三线表制作 转载:https://blog.csdn.net/zaishuiyifangxym/article/details/81668886
- MySQL常用操作指令大全
前言: 一.基础概念 二.子句顺序 三.使用MySQL(USE.SHOW) 四.检索数据(SELECT) 五.排序检索数据(ORDER BY) 六.过滤数据(WHERE) 七.数据过滤(AND.OR. ...
- React Hooks 使用指南
.markdown-body { line-height: 1.75; font-weight: 400; font-size: 16px; overflow-x: hidden; color: rg ...