顯示具有 批次檔 標籤的文章。 顯示所有文章
顯示具有 批次檔 標籤的文章。 顯示所有文章

2010年6月5日

如何在批次檔中,送出 Enter 鍵

某些時候,在批次檔中,所執行的程式(例如 Windows 內建的 date、time、dir/p 指令)會需要按下 Enter 鍵或其他任意鍵才能繼續。如下圖所示:

欲完成此操作,有以下幾種操作可供使用:
  1. 利用 echo 指令搭配「管線」(Pipeline),比方說執行 time 指令之後,要按下 Enter 鍵,就可以寫成:
    echo.|time

  2. 利用會產生一行空白行的指令,再搭配「管線」(Pipeline)。什麼叫會產生一行空白行的指令,例如下面的指令跟結果:

    此時,我們就可以使用這類的指令來達到送出 Enter 鍵或按下任意鍵的效果:
  3. 使用「導向」(Redirect)的觀念,先備妥一個內含 Enter 鍵的檔案(亦即上面說過的:一行空白行,假設其檔名為 Enter.txt) ,因此於執行 time 指令之後,要按下 Enter 鍵,就可以寫成:
    time<Enter.txt

2009年8月12日

如何使用一行指令關閉然後再開啟 Microsoft SQL Server 服務

先前在「如何定時啟動或關閉 MS SQL Server」一文中,討論了如何關閉再開啟 Microsoft SQL Server,現在則是要在一行指令來完成這樣的操作。
要執行的指令如下所示:

2005年9月11日

如何遠端以指令方式啟動或停止伺服器的服務

Windows 內建的 net 指令很好用,可以用來停止或啟動本機的服務,但是要啟動或停止遠端伺服器的服務,就沒辦法了,此時可以使用 3rd party 的工具:PsService
範例:  
psservice \\Win2kSrv -u admin -p password stop "Terminal Services"  
說明:
以 admin 這個使用者的密碼 password 關閉 Win2kSrv 這台電腦上面的 Terminal Services 服務,若目前登入的使用者具有遠端電腦的管理者權限(亦即該使用者的帳號有存在遠端電腦裡,且密碼相同),即可省略掉 -u 跟 -p 的參數。 更多的參數說明,請輸入 psservice /? 以獲得更多的說明 請按此處下載 PsService。

2005年2月24日

如何在批次檔裡使用 Runas 同時傳入密碼

因為 runas 無法透過導向(redirect)的方式傳遞 runas 該程式的使用者密碼,此時需使用 SU.exe (Switch User) 這個工具,它在 Windows 2000 Server/Pro 的 Resource Kit 裡面。
安裝完該工具之後,可以透過下面的兩個方法,輸入密碼:

方法 1:
su.exe alex alex.exe Winsta0\Default < c:\mypassword.txt

其中:
alex 是使用者帳號
alex.exe 是要執行的程式
mypassword.txt 是存放密碼的檔案
Winsta0\Default 是使用者預設互動的工作站與桌面(user default interactive windowstation and desktop),這個選項是 optional 的。

方法 2:
echo mypassword su alex alex.exe

其中:
mypassword 是 alex 這個使用者的密碼
alex 是使用者帳號
alex.exe 是要執行的程式

方法 3:
根據您的需要設定下面的環境變數:
SU_USERNAME - 要使用 SU 的使用者帳號
SU_PASSWORD - 該使用者的密碼
SU_DOMAIN - 使用者所屬的網域
SU_COMMANDLINE - 所要執行的程式
SU_DESKTOP - 使用者的預設互動的工作站與桌面環境

例如在批次檔的內容為:
---批次檔開始---
set SU_USERNAME=alex
set SU_COMMANDLINE=alex.exe
set SU_DOMAIN=win2k
set SU_PASSWORD=password
su.exe
---批次檔結束---

方法 4: 直接執行 su.exe ,在 GUI 介面設定相關的資訊

註:
su.exe 包含了 runas.exe 大部分的功能,詳細的說明,請參照 Resource Kit Tools 的說明。

2004年10月14日

閒聊 Windows 關機指令

在不同的 Windows 作業系統有不同的關機、登出、重新啟動的作法或指令,茲說明如下:

Windows 9x/ME:
可以使用 Rundll32.exe 達到您部分的功能。詳情請參閱:http://www.robvanderwoude.com/rundll.html
您可以將下面的指令製作成一個捷徑檔,放在桌面上,以後就直接點選。
關機:
C:\WINDOWS\RUNDLL32.EXE user,exitwindows

重新開機:
C:\WINDOWS\RUNDLL32.EXE shell32.dll,SHExitWindowsEx 2

重新啟動 Windows : C:\WINDOWS\RUNDLL32.EXE user.exe,exitwindowsexec
還有一個方法也可以重新開機:
runonce -q
(註:當執行 runonce -q 之後,大約會 delay 15 秒才有動作)

WinNT/2000
可以安裝 Resource Kit(要花錢另外購買),安裝完畢之後,可以直接使用 shutdown.exe 來達到:關機、重新啟動的功能,詳細的說明請參考微軟知識庫:KB317371
立即關機:
shutdown /s /t:0 /y

登出:
shutdown /l

立即重新啟動 :
shutdown /r /t:0 /y /c

WinXP/2003
系統已經內建 shutdown.exe 這個程式了。
立即關機:
shutdown -s -t 0

登出:
shutdown -l

立即重新啟動 :
shutdown -r -t 0

註:其實您可以把 WinXP 的 shutdown.exe 複製到 Win2000 的 %systemroot%\system32 上使用。並非所有在 WinXP 上的外部指令皆可以這樣子如法炮製,像:schtasks.exe 移植到 Win2000 上執行馬上被判出局,因為程式有檢查作業版本。
若您的電腦有安裝 IIS ,且作業系統為 Win2000 之後
可以使用 IISReset.exe 這個程式來達到重新開機的目的,指令: iisreset /reboot
有安裝Terminal Service
可以使用 TSShutDn .exe,關於該指令詳細的說明請參考微軟知識庫:KB320188
立即關機:
TSShutDn 0 /delay:0 /powerdonw

立即重新啟動 :
TSShutDn 0 /delay:0 /reboot


Win2000以上
可以使用 DevCon.exe,重開機指令如下:
DevCon /reboot

關於 DevCon 其他應用的討論,請按此

不花錢的作法

  1. 在 Windows NT4 之後的作業系統,可以使用其他廠商(3rd party)開發的免費程式:psshutdown.exe 來進行關機、登出、重新啟動的動作。
  2. 使用微軟 MVP(最有價值專家, Most Valuable Professional)Andrej Budja 所撰寫的工具:Shutdown.exe(僅可在 Windows 2000 之後的作業系統上執行)。

2004年10月13日

使用指令停用網路卡

欲使用指令的方式將網卡停用,需要使用命令模式的「裝置管理員」(DevCon.exe),這個工具可以在微軟的網站下載,不過該工具微軟不提供技術支援,且僅限用於 Windows 2000 以上的系統,在 Windows 9x/ME/NT 無法使用。

請依照下面的步驟進行:
  1. 將 DevCon.exe 解開,裡面會有兩個目錄,每個目錄下會有一個執行檔,請使用 i386 目錄下的那個(ia64 目錄裡的是給 64bit 作業系統用的,若您要試用,我也不反對,反正程式會顯示錯誤訊息)
  2. 開啟命令提示字元,輸入:
    DevCon find PCI\* 按下 Enter
    執行的結果:
  3. 記下您要停用的網路卡的識別碼,以上圖為例:PCI\VEN_1106(只需記錄到第一個 & 之前即可)
  4. 輸入: DevCon disable PCI\VEN_1106 按下 Enter
  5. 待螢幕出現類似下面的訊息,即代表停用OK
  6. 若要啟動的話,就輸入: DevCon enable PCI\VEN_1106 按下 Enter

注意:指令參數不管大小寫,都可以執行無誤,因此無須注意大小寫的問題。