當前位置:首頁 » 編程軟體 » windowsshell編程

windowsshell編程

發布時間: 2022-04-17 16:02:52

⑴ windows怎麼用shell

在windows下想要執行shell腳本,需要使用到"Git Bash",所以我們需要先安裝Git。

⑵ 什麼是shell命令windows系統也有shell命令嗎

Shell(也稱為殼層)在計算機科學中指「為用戶提供用戶界面」的軟體,通常指的是命令行界面的解析器。一般來說,這個詞是指操作系統中提供訪問內核所提供之服務的程序。Shell也用於泛指所有為用戶提供操作界面的程序,也就是程序和用戶交互的層面。因此與之相對的是內核(英語:Kernel),內核不提供和用戶的交互功能。

不過這個詞也拿來指應用軟體,或是任何在特定組件外圍的軟體,例如瀏覽器或電子郵件軟體是HTML排版引擎的Shell。Shell這個詞是來自於操作系統(內核)與用戶界面的外層界面。

通常將shell分為兩類:命令行與圖形界面。命令行殼層提供一個命令行界面(CLI);而圖形殼層提供一個圖形用戶界面(GUI)。

[Wikipedia:殼層]

==========================

虛擬終端機(英語:Terminal emulator)是在個人電腦上虛擬的一個終端以及為此目的而寫的軟體。虛擬終端的目的是達到個人電腦及其用戶能夠與大型計算機的連接。一般來說需要連接的大型計算機是IBM的大型計算機或者所謂的超小型計算機(過去往往是迪吉多的VAX)。

虛擬終端使得個人電腦的用戶可以直接使用他的個人電腦來與大型計算機聯系,而不必使用專門的終端。

通過虛擬終端的軟體虛擬終端還可以擴展大型計算機的標准終端的功能,通過虛擬終端不但可以將個人電腦上的數據傳遞給大型計算機,而且還可以將大型計算機的數據傳遞給個人電腦,並在個人電腦上繼續加工。

一般大型計算機的終端是字母式的輸入和輸出介面,因此一個虛擬終端至少需要一個能夠模擬這樣的字母式(比如ASCII)輸入和輸出介面的能力。最常見的平台是圖像式的用戶表面。要使得新的、圖像式的程序能夠使用老的字母式的或者沒有圖像式輸入和輸出能力的程序也需要虛擬終端。

現代的大型計算機也內部使用虛擬終端,這樣它們可以向老的、需要終端的程序假裝一個終端,而實際上它則將程序的顯示轉到顯卡上。比如linux以及其它大多數基於個人電腦的類似Unix的操作系統假裝有六至十個這樣的「虛擬」的終端。

[Wikipedia:虛擬終端]

==========================

Windows命令提示符(cmd.exe)是Windows NT下的一個用於運行Windows控制台程序或某些DOS程序的殼層程序;或在Windows CE下只用於運行控制台程序的殼層程序。它被用於替代Windows 9x系統中所提供的COMMAND.COM和「MS-DOS提示符」。命令提示符的最初版本由Therese Stowell開發。

[Wikipedia:命令提示符]

==========================

PowerShell(包括Windows PowerShell和PowerShell Core)是微軟公司開發的任務自動化和配置管理框架,由.NET Framework和.NET Core是構建的命令行界面殼層相關腳本語言組成,最初僅Windows組件,後於2016年8月18日開源並跨平台支持。[3]

在PowerShell中,管理任務通常由cmdlets(發音為command-lets)執行,這是執行特定操作的專用.NET類。可以將cmdlet集合至腳本、可執行文件(一般是獨立應用程序)中,或通過常規.NET類(或WMI / COM對象)實例化。[4][5]通過訪問不同數據存儲中的數據由PowerShell運行,如資源管理器或注冊表。

[Wikipedia:Windows PowerShell]

==========================

Windows shell是Microsoft Windows操作系統的圖形用戶界面。Windows shell易於識別的元素包括桌面、任務欄、開始菜單、任務切換器和自動播放等特徵。在某些版本的Windows上,還包括Flip 3D和魅力(charms)等功能。在Windows 10中,Windows Shell Experience Host界面可以驅動視覺效果,如「開始」菜單,「操作中心」和「任務欄」、Task View/Timeline。另外,Windows shell還實現了一個shell命名空間,該命名空間使Windows上運行的計算機程序能夠通過shell對象架構訪問計算機的資源。「桌面」是層次結構的頂級對象,在它之下有一些存儲在磁碟上的文件和文件夾,以及一些內容為虛擬或動態創建的特殊文件夾,如垃圾箱、控制面板、我的計算機、我的網路位置等等。

基本上講,Shell是由文件夾組成的,文件夾是一個包含有子元素的容器,包括子文件夾,這些元素通常稱為文件夾項。根文件夾稱為『桌面』,其子項包括『我的計算機』,『網上鄰居』,『回收站』,和其他可能的項,所有這些文件夾的集合稱之為Shell的命名空間。文件夾實際上是一個Shell對象,它的行為被編碼成一個COM模塊,向Windows Shell暴露公共的介面。通過連接,文件夾可以告訴Shell怎樣設計它的內容,使用什麼樣的圖標顯示,採用什麼文字來描述。文件對象是一個包含在普通文件夾中的項—文件、記錄、內存塊、連接的設備等。『文件夾項』、『文件夾元素』和『文件對象』這些術語是等價的。任何文件夾的內容都是通過一個對象調用Shell viewer顯示在Windows explorer.exe中的。每一個文件夾都定義了他自己的Shell viewer對象,並且所有相關於這個用戶介面的任務都指派到這個對象上。

從概念上講,桌面是所有Windows Shell對象的父對象,即宿主對象。就實現方式而言,桌面是一個系統定義窗口類的特殊窗口(命名為#32769),並且是所有窗口的祖先窗口。那些導出應用的頂層窗口一般而言都是桌面的子窗口。[1]

主要的Windows Shell部件就是任務欄,它實際上就是由explorer.exe進程所擁有的一個窗口。當終止explorer.exe進程的時候,都將引起任務條的消失和重新顯現。每當任務欄重新顯現的時候,它注冊一個具有不同HWND的新窗口。任務條擁有「開始」按鈕的窗口,在托盤區域有時鍾和類似按鈕的控制項,表示正在運行的應用。任務條實際上與窗口一樣,可以在其上作任何窗口上可以做的操作如移動、隱藏和子類化等。

explorer.exe是一個扮演著系統外殼角色的應用程序。當說到外殼擴展的時候,就是由explorer.exe感知的、裝入的並最終執行的代碼塊。explorer.exe可以被看作為一個微型的窗口開發環境:它有自己的函數和對話框;允許寫特殊的與已存在的體系集成的應用程序;能包容應用和文檔。甚至可以解釋任何活動的腳本兼容語言的腳本(VBScript,JScript,Perl,等等)。採用COM介面和進程內伺服器(實質上的DLL)

在Win16環境中,與Shell唯一的通訊方式是通過動態數據交換(DDE)。

[Wikipedia:Windows Shell]

⑶ windows怎麼運行shell腳本

在工作中情況會在碰到linux下進行執行shell的腳本,而就會使用shell的腳本,但經常使用的Windows的系統,而想在Windows電腦中進行直接shell的腳本,而不用再進行學習其它的腳本語言。

工具/原料

Windows

git

方法/步驟

1、首先電腦中需要安裝的是git的應用程序,安裝完成之後,可以在開始菜單進行查看。

⑷ windows 怎麼寫shell腳本

方法/步驟
打開http://www.cygwin.com/,下載cygwin對應於自己windows操作系統的版本:32位或64位
(cygwin是一個在windows平台上運行的unix模擬環境,是cygnus solutions公司開發的自由軟體)

安提示安裝好cygwin
打開cygwin,就可以看到熟悉的命令行提示了,shell環境對應的根目錄是軟體的安裝目錄

開始使用linux命令:grep、awk、less、vi等等,如果發現有缺少什麼命令,重新運行setup.exe安裝程序,搜索需求的命令,叉選上即可安裝。

⑸ Shell編程的實現方法

前面所說的直接使用Windows操作系統部分功能的編程方法就是針對Windows操作系統外殼的編程,可以通過對操作系統提供的幾個編程介面對操作系統的部分功能進行調用,甚至可以按照自己的意圖在應用程序中對部分功能進行修改、擴展。但這方面的資料介紹不是特別多,講的也大都語焉不詳,而且用通常的編程方法去進行外殼編程是非常麻煩的,動輒就要對相關的結構對象進行設置,而這樣的結構里的數據成員少則十來個多則幾十個,因此配置起來非常煩瑣,下面就以一個比較簡單的外殼操作--拷貝文件進行舉例說明: ……
SHFILEOPSTRUCT FileOp; //外殼的文件操作結構
FileOp.hwnd=m_hWnd; //設置句柄
//設置操作方式,拷貝用FO_COPY,刪除用 FO_DELETE
FileOp.wFunc=FO_COPY;
FileOp.pFrom=m_source; //源文件路徑
FileOp.pTo=m_detect; //目標文件路徑
FileOp.fFlags=FOF_ALLOWUNDO; //允許恢復
FileOp.hNameMappings=NULL;
FileOp.lpszProgressTitle=strTitle; //設置標題
SHFileOperation(&FileOp); //執行外殼拷貝
if(FileOp.fAnyOperationsAborted) //監測有無中止
TRACE(An Operation was aborted!!! );
…… 上述代碼實現起來雖然效果還是不錯的,但然實現起來卻是比較麻煩的,這僅僅是一個比較簡單的外殼操作,對於一些比較復雜的外殼操作比如系統托盤、任務條等等的編程,更是尤為嚴重,而且象此類編程,MFC里並沒有提供封裝好的程序類庫,提供的只有系統的WinAPI 應用程序介面,因此在程序開發過程中往往會有一種在進行SDK編程的感覺。
COM (Component Object Model,組件對象模型)是Microsoft創建的一種二進制和網路標准,也是Microsoft大力推廣並已取得廣泛認可的一種組件標准。在COM標准中,COM對象被很好的封裝起來,客戶無法訪問對象的實現細節,提供給用戶的唯一的訪問途徑是通過COM介面來訪問。對於COM介面有兩方面的含義:首先它是一組可供調用的函數,由此客戶可以讓該對象做某些事情;其次,也是更為重要的,介面是組件及其客戶程序之間的協議。也就是說介面不但定義了可用什麼函數,也定義了當調用這些函數時對象要做什麼。Windows操作系統本身作為一個大的COM組件對象,也提供了一些必要的COM介面給客戶程序,因此我們可以通過這些COM介面來直接對Windows外殼進行編程。
在程序進行正式編寫設計之前有一點是肯定的:程序里需要用到COM介面,要對COM對象進行操作。因此首先要加入初始化COM和終止COM的代碼。一般是在應用程序類的InitInstance()函數的開始處和返回前添加初始化COM和終止COM代碼的: ……
CoInitialize(NULL); //初始化COM
……
CoUninitialize(); //終止COM代碼
…… 以上兩個函數在MFC程序和非MFC程序中都可以很好的使用。另外,如果程序框架是以MFC為基礎的,那麼只需簡單的調用AfxOleInit()函數就可以達到同樣的目的。而且不必顯式調用終止COM的代碼。在COM標准中,訪問COM對象的唯一途徑是COM介面,因此在編寫操縱Windows 系統外殼程序首先要得到其提供的COM介面。所用的COM介面是IShellDispatch,它是從IDispatch介面派生來的,在VC安裝目錄的VC98IncludeExdisp.h頭文件中有定義,下面節選了一些將要用到的介面定義: ……
EXTERN_C const IID IID_IShellDispatch;
#if defined(__cplusplus) && !defined(CINTERFACE)
interface DECLSPEC_UUID(D8F015C0-C278-11CE-A49E-444553540000)
IShellDispatch : public Idispatch
{
public:
……
virtual HRESULT STDMETHODCALLTYPE MinimizeAll( void) = 0;
virtual HRESULT STDMETHODCALLTYPE UndoMinimizeALL( void) = 0;
virtual HRESULT STDMETHODCALLTYPE FileRun( void) = 0;
virtual HRESULT STDMETHODCALLTYPE CascadeWindows( void) = 0;
virtual HRESULT STDMETHODCALLTYPE TileVertically( void) = 0;
virtual HRESULT STDMETHODCALLTYPE TileHorizontally( void) = 0;
virtual HRESULT STDMETHODCALLTYPE ShutdownWindows( void) = 0;
virtual HRESULT STDMETHODCALLTYPE Suspend( void) = 0;
virtual HRESULT STDMETHODCALLTYPE SetTime( void) = 0;
virtual HRESULT STDMETHODCALLTYPE TrayProperties( void) = 0;
virtual HRESULT STDMETHODCALLTYPE Help( void) = 0;
virtual HRESULT STDMETHODCALLTYPE FindFiles( void) = 0;
virtual HRESULT STDMETHODCALLTYPE FindComputer( void) = 0;
};
…… 該介面在CoCreateInstance()函數創建COM對象時將會得到指向其的指針,通過這個函數客戶程序可以避免顯式同類廠打交道,其實該函數內部也調用了CoGetClassObject()函數來獲取COM對象的類廠,只不過它把通過類廠創建對象的過程封裝起來了,只需用戶指定對象類的CLSID和待輸出的介面指針及介面ID,顯然這樣直接創建COM對象是非常便捷的,在獲取到COM對象指針之後就可以通過這個指針去訪問調用COM對象里的方法來實現Windows 外殼的種種功能調用了。下面是實現該功能的部分關鍵代碼: ……
HRESULT sc;//返回結果
IShellDispatch *pShellDisp = NULL; //初始化介面指針
//直接創建COM對象
sc = CoCreateInstance( CLSID_Shell,//指定待創建的COM對象標識符
NULL, //指定被聚合時的外部對象的介面指針
CLSCTX_SERVER, //指定組件類別,可以指定進程內組件進程外組件或者進程內控制對象。
IID_IDispatch, //指定介面ID,需要注意的是這里指的是待
//創建的COM對象的介面ID,而非類廠對象的介面標識符
(LPVOID *) &pShellDisp );//存放函數返回的對象的介面指針
/* 在上述代碼中,CoCreateInstance首先調用CoGetClassObject函數創建類廠對象,然後用得到的類廠對象的介面指針創建真正的COM對象,最後把類廠對象釋放並返回,這樣就很好的把類廠屏蔽起來,使用戶用起來更為簡單。*/
if( FAILED(sc) )//必須用FAILED 或SUCCECCED來判斷COM對象是否創建成功
return;
pShellDisp->FindFiles(); //調用COM對象里的方法
pShellDisp->Release(); //釋放申請到的介面指針
…… 在這里通過pShellDisp介面指針調用了COM對象的FindFiles()方法去進行查找文件的系統外殼操作。同樣,可以根據實際需要靈活調用響應的方法來執行相應的外殼操作,主要有以下幾個方法:MinimizeAll:所有窗口最小化、UndoMinimizeALL:恢復窗口最小化、FileRun:開始菜單的運行…、CascadeWindows:層疊窗口、TileVertically:垂直平鋪、TileHorizontally:水平平鋪、ShutdownWindows:關閉Windows、Suspend 掛起計算機、SetTime:設定時間、TrayProperties:任務欄屬性、Help Windows:幫助、FindFiles:查找文件、FindComputer:查找計算機等。
這些介面均在VC安裝目錄的VC98IncludeExdisp.h頭文件中有定義,可以通過對該文件的查看來編寫響應的外殼操作代碼。

⑹ 關於windows shell

Windows PowerShell 是微軟公司為 Windows 環境所開發的殼程式(shell)及腳本語言技術,採用的是命令行界面。這項全新的技術提供了豐富的控制與自動化的系統管理能力。

之前的專桉代號是 Monad,程式另一個名稱叫 Microsoft Shell(MSH)。

起源與目的
UNIX 系統一直有著功能強大的腳本(shell),Windows PowerShell 的誕生就是要提供功能相當於 UNIX 系統 BASH 的命令列殼程式,同時也內建腳本語言以及輔助腳本程式的工具。

程式特性
一致性的設計讓所有工具和系統資料的使用語法、命名原則都相同。
腳本語言簡單易學,而且能支援現有的腳本程式和命令列工具。
內含129種稱為 cmdlet 的標准工具,可用來處理常見的系統管理工作。
具備完整的擴充功能,獨立軟體商或開發者都能很容易的自行擴充。
cmdlet 是 Windows PowerShell 的指令,發音念法為 command-let。這相當於 DOS 或其他殼程式的內建指令,指令名稱的格式都是以連字型大小(-)隔開的一對動詞和名詞,並且通常都是單數名詞;例如線上查詢說明的 cmdlet 指令為 get-help,名稱的動詞部分大致有 get、set、add、remove 等等(字母都不分大小寫)。

技術基礎
Windows PowerShell 是以 .NET Framework 技術為基礎,並且與現有的 WSH 保持回溯相容,因此它的腳本程式不僅能存取 .NET CLR,也能使用現有的 COM 技術。同時也包含了數種系統管理工具、簡易且一致的語法,提升管理者處理,常見如登錄資料庫、WMI。Exchange Server 2007 以及 System Center Operations Manager 2007 等伺服器軟體都將內建 Windows PowerShell。

範例
停止所有目前執行中的以"p"字元開頭命名的程式:
PS> get-process p* | stop-process

停止所有目前執行中的所有使用大於1000MB記憶體的程式:
PS> get-process | where { $_.WS -gt 1000MB } | stop-process

計算一個目錄下檔桉內的位元組大小:
PS> get-childitem | measure-object -property length -sum

等待一個叫做"notepad"的程式執行結束:
PS> $processToWatch = get-process notepad
PS> $processToWatch.WaitForExit()

將"hello, world!"字串轉為英文大寫字元,成為"HELLO, WORLD!":
PS> "hello, world!".ToUpper()

在字串"string"的第1個字元後插入字串"ABC",成為"sABCtring":
PS> "string".Insert(1, "ABC")

訂閱一個指定的RSS Feed並顯示它最近8個主題:
PS> $rssUrl = "http://blogs.msdn.com/powershell/rss.aspx"
PS> $blog = [xml](new-object System.Net.WebClient).DownloadString($rssUrl)
PS> $blog.rss.channel.item | select title -first 8

把"$UserProfile"設定成數值"UserProfile"的環境變數:
PS> $UserProfile = $env:UserProfile

⑺ shell 編程是可以在windows系統上操作嗎

一般說的話shell直接指linux下的命令編程,而cmd直接指windows下的命令編程。。。

如果你說的shell是linux下的那種的話當然它也就不能在win下操作

⑻ 在windows中怎樣運行shell腳本來編譯程序

首先電腦中需要安裝的是git的應用程序,安裝完成之後,可以在開始菜單進行查看。 並需要配置好git的bin,配置環境變數,把bin的絕對路徑復制到環境變數中path。 配置git的環境變數之後,在任意文件進行創建一個為mkdir.sh,文件名可以是隨意的結.

⑼ Windows中的Shell編程 Shell指的是什麼意思

操作系統中,與用戶直接交互的那一部分就叫 Shell。就是你能看得到的那些元素,像 DOS 中所謂的 SHELL 就是那個命令行,在 Windows 中就是這些圖形元素,在 UNIX 中,SHELL 有很多種,可以根據自己的需要更換。

⑽ 哪位能介紹下Windows Shell編程的書籍

基本書籍推薦:《Windows Shell 編程.chm》,不過版本有點老。
分為五類函數:一般Windows函數;Shell內部函數;任務條函數;文件函數;文件夾函數
看出來了吧,其實就是API操作。
《Shell編程指南.pdf》難度有點大,但是很不錯。

熱點內容
存儲指令集 發布:2024-03-29 14:39:27 瀏覽:648
資料庫表刪除數據 發布:2024-03-29 14:39:26 瀏覽:366
出c語言整除 發布:2024-03-29 14:28:22 瀏覽:571
芬尼壓縮機 發布:2024-03-29 14:24:11 瀏覽:463
電腦數據實時上傳本地伺服器軟體 發布:2024-03-29 14:07:57 瀏覽:919
尋秦記源碼 發布:2024-03-29 13:56:17 瀏覽:495
linux的備份命令 發布:2024-03-29 13:41:22 瀏覽:382
csgo建議什麼配置 發布:2024-03-29 13:31:44 瀏覽:979
電腦ftp服務如何禁用 發布:2024-03-29 13:24:48 瀏覽:332
驅動精靈驅動解壓 發布:2024-03-29 13:07:49 瀏覽:565