
就是把某個目錄掛載成新的磁碟代號,實作如:

把 C:\Users 掛到 P 槽,可以去我的電腦看看多了一個 P 槽。而刪除是:

這個指令有什麼用?這是一開始學命令例會想來炫的指令,但用多了就會知道不好用。最大的問題在於重開機後就不見了,還要搞才會出現,很麻煩。但有時候還是會看到,拿來炫也不錯,所以就擺在教學中。
下一個是百聞不如一見的「find」:

假設有一個 Test.txt :

對它找「not」:

或顯示有幾行:

或顯示不存在的那幾行:

其它參數可以玩看看,在這裡就不再多做解釋。
什麼?「find」沒了,那前一章說這麼多是要作什麼?來看看這個指令就知道了:

這個指令它要作什麼不重要,重要是在下面。有沒有看到它列出所有目前可用的磁碟代號?這時只要加上管線命令:

就可以列出目前的磁碟代號,再加上「for」就更好用了。
下一個要說的是「start」,呃,這個不好說明,還是先來看說明吧:

耶,好長,還是先來說它的作用好了。「start」是用來執行另外一個程式的,如 .exe 、 .cmd ,實作如下:

這樣開有什麼意義呢?像這樣也可以啊:

那來試看看這個:

看到差異了吧?「start」會再開一個新的視窗去執行,為什麼要有這個指令?因為有些程式執行時會占據整個命令列,但設計時為了要讓批次檔繼續執行,所以才需要「start」讓這個程式開一個新的視窗去執行。但是像記事本這種一開始就不是為命令列而活,所以不論有沒有「start」都沒差。
「start」還有很多東西可以說,如果什麼參數都不加,如:

它開一個新視窗,這是「start」的基本功能,但沒有人在意,大家都用來執行程式比較多。如果再加:

它會開新的一個視窗,標題和路徑都變了:

接下來看程序優先類別,其實就是工作管理員中的「設定優先順序」:

可以用的就是那串 [/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL] 啦,這應該不用再多作解釋了。另外參數「/affinity」也會用到:

其實就是工作管理員中的「設定親合性」,白話(其實是中文)就是指限制執行緒在哪個中央處理器執行。這個指令要注意,它是用十六進位表示,「11111111」表示第八核到第一核全開,「00001110」表示開第四核、第三核和第二核。實際下時再轉成十六進位即可。最後也是最重要的「/wait」:

來跟「start ping -t Google.com」比較:「start ping -t Google.com」的原視窗會出現下一行可以繼續輸入指令,但「start /wait ping -t Google.com」不會,直到關閉新開的 ping 。這就是「/wait」的作用,不管下的指令是不是符合命令列的,參數「/wait」都會等到指定的程序結束後才會繼續執行。
來個「start」結論:
不是為命令列設計的(如記事本),有沒有使用「start」都會繼續執行,但加了「/wait」之後等到程序結束。
為命令列設計的(如 ping ),完全不用「start」或加了「/wait」結果都一樣,但只用「start」會繼續執行。
好累喔,但還沒完。「start」有一個很奇怪的臭蟲,就是參數太多時它會判斷錯誤,目前程式設計師研究出來的方法是不論要作什麼都用「start ""」開始。
所以:
要執行程式並不等結果,開頭請以:

要執行程式並等結果,開頭請以:

當然,「command」就是要執行的程式和參數。
「start」是常用且重要的指令,上面的那些其實都不重要,所以加上「start」來增版面。這章就可以看到難度了。其實也沒那麼難懂,只是不那麼熟悉,因為平常都是點二下執行,根本沒想那麼多。事實上大部份都是直接用最下面的結論來下,也沒有想那麼多。但下一章開始進入所謂的正題了,非常重要。
下一章:條件判斷
- 2012-09-11 初次發佈。
- 2017-07-12 更新成 Windows 10 的版本。
請問版主:
回覆刪除為什麼我打type Test.txt 結果是它的內容,而版主出現的是
This is a test
this is not a test
……
而我打 find "not" test.txt 只出現
------------TEST.TXT 沒有出現 This is not a test.
我打 find /v "not" Test.txt 只出現的是它的內容。
謝謝版主!
要先用記事本先建一個 Test.txt 的檔案
刪除檔案內容是:
This is a test.
This is not a test.
This can be a test.
This may be a test.
請問版主
回覆刪除為什麼我建立了test.txt
也輸入了內容
也存檔了
但為何我輸入type test.txt沒顯示裡面的內容?
請確定檔案總管的目錄和命令提示字元的目錄是相同的
刪除因為預設命令提示字元的目錄不會是桌面
oops 發現問題點了
刪除謝謝版主^_^
請問版主
回覆刪除之前用
start /max excel.exe
寫一個簡單的批次檔
是可以直接跳出,
另一個2013 excel,沒問題
可以,很方便作業
但【有巨集 DDE 時】,就會有衝突現象
而用 (手動)
1.執行 Win鍵+R
2.執行 excel /x
【有巨集 DDE 時】,就不會有衝突現象
請問 兩者方式,有何差異
可以請問
1.執行 Win鍵+R
2.執行 excel /x
要 如何 撰寫
可否 幫忙解決,感謝~~
衝突是...可以再多說明一點嗎?
刪除感覺是同時開二個 Excel 的問題
可以試看看 start "" /wait excel.exe
我在猜應該是你不希望 EXCEL 同時執行吧
刪除如果是這樣,應該是
start "" /wait /max excel.exe /x 第一個巨集.vbs
start "" /wait /max excel.exe /x 第二個巨集.vbs
你會發現在第一個 excel.exe 尚未結束前不會跑出第二個巨集
感謝~~
刪除是的 補充說明一下
是同時開二個 Excel 的問題
第一個
正常開Excel檔,有巨集在偵測作業
開二個 Excel檔 時
用這
start /max excel.exe
或
start "" /wait excel.exe
一開檔,
還沒叫出檔名開起
第一個Excel檔,
就有 巨集 作業,出現偵測衝突的現象
************************
而用 手動方式
1.執行 Win鍵+R
2.執行 excel /x (就 OK)
************************
懇請 大大
幫忙 解惑
所以你的意思是說,你想要同時執行二個 excel.exe 不關閉
刪除如果不使用 start /max 呢?
會不會就沒有問題了?
因為 之前
刪除用二個 2003 excel是OK的
開二個 2003 excel都可以是 獨立視窗
而 升級到 2013
網上
是說 可以獨立
2010 才會有問題
本人一開 2013 excel
到第二個 2013 excel 就出現問題
所以 才想辦法 克服
************************
目前
是用手動方式
1.執行 Win鍵+R
2.執行 excel /x (處理)
************************
不了解您
所說的不使用 start /max
是??? 如何運用
3Q
我目己是用 Office 2016
刪除執行(連續二行,或是同一個 .cmd 檔案內)
start "" /max excel
start "" /max excel
會跑二個獨立的視窗
可以試看看
執行(連續二行,或是同一個 .cmd 檔案內)
excel
excel
因為這個動作和 Win+R 是一樣的
可以多試組合看看
因為試了不會壞
補充 訴求 是
刪除1.要開二個 2013 excel
2.二個 2013 excel
各開各的檔案,各跑各的巨集運作
A.檔案 跑訊號 策略
B.檔案 跑下單 交易
那可以試看看不要使用 start
刪除執行連續二行,或是同一個 .cmd 檔案內
excel /x
excel /x
這個動作和 Win+R 是一樣的
或許可以解決問題
修正 訴求
刪除應該是 能獨立的開啟excel為主
start "" /wait excel.exe /x
start /wait excel.exe /x
這兩組都可以...
bat檔
會同時開啟 2個視窗
1個是 cmd
1個是 excel
那 要如何可以將 cmd 再關閉呢??
或不開啟??
感謝~~
start "" /wait 會比較好
刪除而此時 CMD 的畫面沒有辦法弄消失
因為是 cmd.exe 在等待 excel.exe 消失
如果真的存心要看不到那個黑色視窗
可以一開始就讓他消失
用像這樣的工具
http://www.f2ko.de/en/b2e.php
點二時就不顯示黑色視窗
最後讓我詢問一件事
所以最後決定是先開第一個 Excel ,讓使用者關閉後自動再開一個新的
是這樣嗎?
是要開二個 2013 excel
刪除各開各的檔案,各跑各的巨集運作(能獨立的開啟excel為主)
A.檔案 跑訊號 策略
B.檔案 跑下單 交易
那試看看
刪除cmd /c excel.exe -x
cmd /c excel.exe -x
也許可以解決問題
不行耶~~
刪除不過 以上面的方式 已經OK了
黑色視窗 也可以解決
感恩
那我也不知道要怎麼辦
刪除試看看等個 10 秒
cmd /c excel.exe -x
timeout 10
cmd /c excel.exe -x
也許是這個問題?
不用了... 感謝
刪除一樣不行...感謝~
回覆刪除其實你也可以用call
刪除