cmd腳本

1.if語句java

  if語句有三種用法:判斷以前命令的返回值、判斷字符串相等、判斷文件存在。linux

1.1.判斷上條指令的返回值,返回值卯準了,就執行緊跟着的命令,要不就執行else的命令。
web

>echo %errorlevel%
>if errorlevel 0 (echo ok) else (echo false)
ok

>if not errorlevel 0 (echo ok) else (echo false)
false


1.2.判斷環境變量與字符串是否相等apache

>if %os%=="win_nt" (echo "win_nt") else (echo %os%)
Windows_NT


1.3.判斷文件是否存在windows

>if exist %catalina_base%\conf\server.xml (echo ok) else (echo false)
ok

>if exist %catalina_base%\conf\servers.xml (echo ok) else (echo false)
false


2.settomcat

  顯示、設置或刪除「cmd.exe環境變量」。bash

2.1.顯示全部環境變量、顯示以某個字母開頭的變量app

>set
……
>set ca
CATALINA_BASE=C:\web\webapps
CATALINA_HOME=C:\web\apache-tomcat-7.0.75

>set j
JAVA_HOME=C:\web\jdk1.8.0_121
JRE_HOME=C:\web\jdk1.8.0_121\jre


要是顯示的變量不存在,「errorlevel」變量置1。
ssh

C:\Users\Administrator>set paol
環境變量 paol 沒有定義

C:\Users\Administrator>echo %errorlevel%
1


2.2.設定變量
webapp

>set OS=Windows_NT


3.call

  調用另外一個批處理程序

if not exist "%CATALINA_BASE%\bin\setenv.bat" goto checkSetenvHome
call "%CATALINA_BASE%\bin\setenv.bat"

讀取環境變量配置


4.exit

  退出「cmd.exe」程序、當前批處理腳本。語法格式「exit /b /exitcode」。

退出腳本「/B」

exit /B


退出腳本,返回0

exit /B 0


看看返回值

>type haha.bat
@echo off
echo ok
exit /B 33
>haha.bat
ok

>echo %errorlevel%
33


  在腳本中,沒有函數,可是能夠經過跳轉執行相似函數的效果(或者經過call調用)。跳轉時會越過某些語句行,例如

>type haha.bat
@echo off
rem No JRE given, use JAVA_HOME as JRE_HOME
set "JRE_HOME=%JAVA_HOME%"

:gotJreHome
rem Check if we have a usable JRE
if not exist "%JRE_HOME%\bin\java.exe" goto noJreHome
if not exist "%JRE_HOME%\bin\javaw.exe" goto noJreHome
goto okJava

:noJreHome
rem Needed at least a JRE
echo The JRE_HOME environment variable is not defined correctly
echo This environment variable is needed to run this program
goto exit

:okJava
rem Don't override the endorsed dir if the user has set it previously
echo "Will not be execute."

:exit
echo ok
exit /B 33

>echo %java_home%
C:\web\jdk1.8.0_121

>haha.bat
The JRE_HOME environment variable is not defined correctly
This environment variable is needed to run this program
ok



1 編輯本地DNS文件

  在本地實現dns解析能夠給工做帶來不少便利,最簡單的實現就是hosts文件了。但是每次編輯時真是麻煩。這裏把針對該文件的編輯由一個命令直接實現。文件名就保存爲hosts.cmd,放在系統PATH下。

@echo off
notepad c:\Windows\System32\drivers\etc\hosts


2 putty的文件傳輸

  要是更習慣命令行操做,那麼putty提供的命令能夠這樣編輯。這個保存爲cp.cmd,這個命令更像linux環境,跟windows的copy也不衝突。

@echo off
pscp.exe -l weblogic -i C:\Users\Donatello\win.ssh\h1\id_rsa-2p.ppk %1 %2


  使用時,連用戶名密碼都不用輸入,只須要指定源文件路徑和文件名、目標路徑文件名便可。

  若是是須要啓動putty,怎麼作?答案是直接複製一份到PATH便可。啥都不用幹


3 SecureCRT

  這個要麼是安裝的、要麼是複製的,要是想直接「ctrl+r」快速啓動(避免動鼠標)?

  又來了,……,名字就看我的愛好了。

C:\WINDOWS\system32>copy hosts.cmd crt.cmd
已複製         1 個文件。
C:\WINDOWS\system32>notepad.exe crt.cmd
C:\WINDOWS\system32>crt
C:\WINDOWS\system32>type crt.cmd
@echo off
"C:\Program Files (x86)\securecrt\SecureCRT.exe"






* 有個問題

  cp.cmd,若是拷貝的目標不是倆參數(參數不肯定呢),要是還想用cmd腳本以cp命令執行,該怎麼寫?

D:\Desktop>pscp ping.sh ping2.sh cer.sh root@hp:/root
root@hp's password:
ping.sh                   | 0 kB |   0.3 kB/s | ETA: 00:00:00 | 100%
ping2.sh                  | 0 kB |   0.4 kB/s | ETA: 00:00:00 | 100%
cer.sh                    | 0 kB |   0.4 kB/s | ETA: 00:00:00 | 100%
相關文章
相關標籤/搜索