linux下shell文件與windows下bat文件互相轉換


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

————————————————
版權聲明:本文為CSDN博主「怠惰的小小白」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_35462323/java/article/details/89335870


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM