2016-11-23 51 views
0

我已經繼承了各種任務,使用中等混亂的批處理文件。我打算把它們改寫成Python腳本,只要我能夠徹底地看到他們在做什麼,我的繼任者也可以。在什麼情況下批處理文件是正確的方法?

我真的不明白爲什麼每個人都會有一個驚人的簡單(五行以下,按順序做a,b,c,d,e)批處理文件:當然,合理的邏輯值得采用更現代的方法嗎?但我錯過了什麼?仍然在使用這種方法有真正的優勢嗎?如果是這樣,那是什麼?

澄清迴應評論:Windows .bat fils,它檢查某些地方的文件是否存在並移動它們,然後根據找到的內容調用其他程序。我想我真正要問的是,爲這種事情創建批處理文件是否是正常的良好做法,還是更常用一種不同的方法?

+0

你的意思是什麼樣的批處理文件,Windows? – 2016-11-23 08:21:32

+7

.bat腳本的優點是它們可以非常容易地執行。大多數不需要下載額外的組件,它們不需要關注執行策略,它們不需要編譯器,並且它們很容易在論壇,pastebin等文本片段中共享。它是一種工具,就像Python一樣另一個工具,就像PowerShell,C#等一樣。對於某些作業,批處理腳本是正確的工具。如果沒有你提出更具體的問題,那麼你會得到一個好答案。這個問題應該以意見爲基礎來結束。 – rojo

+0

在什麼情況下python文件是正確的方法?不要陷入[儀器法則](https://en.wikipedia.org/wiki/Law_of_the_instrument)陷阱:如果您擁有的只是一把錘子,一切看起來都像釘子。 – mouviciel

回答

1

我敢肯定,如果我仍然在Windoze系統上做系統管理員,我會用一些東西來替換除最簡單的BAT文件以外的所有東西 - 任何東西! - 別的。因爲那個特定的命令語言在你所需要的一切方面都非常缺乏。 (異常處理?塊結構化代碼?過程?解析文本字符串和文件名?)

Python具有高度的可讀性和「包含電池」,因此它必須作爲Windows腳本語言值得考慮。但是,Powershell可能會提供與Windows組件接口方面的優勢。它的設計符合這一點。對於Python,您將依賴額外的模塊,這些模塊可能會或可能不會完成您需要的所有功能,並且可能不像Python及其標準庫那樣得到很好的支持。另一方面,如果目前與BAT一起完成,它可能不是那麼複雜!

反對改變的主要理由是「如果它沒有壞掉,不要修復它」。因此,如果BAT腳本盡你所需並且不需要改變,那就不要做任何改變。還沒。 (稍後更新將需要,那是考慮報廢BAT腳本並重新開始的時候)。

2

我不知道這是對上述問題作出正確的地方,但無論如何..

  1. 批處理文件(很輕微的保留)可以在每個Windows機器上從Windows NT(跑出其中cmd.exe被引入)。當你必須處理運行windows xp或2003的舊機器時,這是特別有價值的。(仍然)windows機器之間最便攜的語言。

  2. 批處理文件非常快。特別是與powershell相比。

  3. 更容易打電話。雖然默認情況下使用wscript.exe調用wsh(其輸出在繁瑣的彈出窗口中),而powershell需要策略參數,默認情況下雙擊不能在powershell腳本上運行。

我不認爲你需要python,除非你瞄準多平臺腳本(即mac或linux機器)。 Windows自帶其他功能強大的語言,如VBScript和JavaScript(自XP以來)。 C#,Visual Basic和jscript.net(自Vista以來)和PowerShell(自Windows 7以來)。即使你想要多平臺腳本,基於網絡的語言也是非常可觀的,因爲Miscrosoft已經提供了對.net for unix的官方支持。雖然最好的選擇可能是PowerShell和C#作爲visual basic和jscript.net處於維護模式,儘管jscript選項(jscript和jscript.net)基於JavaScript,而目前它是更受歡迎的語言並投資於它值得。

順便說一句,默認情況下所有與Windows打包的語言都可以優雅地包裝到批處理文件中。

相關問題