2015-04-25 54 views
0

我在bash上工作了幾年。最近我搬到了窗戶。在bash中,我可以運行幾個.cpp文件,從一個輸出並以非常平滑的方式將其輸出給另一個。不過,我也想對.bat文件做同樣的事情,但是我找不到任何教程。請指導我完成整個過程。在Windows環境下管理類似於Bash

+1

爲什麼不使用'bash'? :) https://www.cygwin.com/ – hek2mgl

+1

如果您對答案滿意,可以通過單擊左側的管道圖標來接受答案。這對回答者來說是一個很大的回報。 – peterh

+0

如果我在bash(cygwin)中編寫代碼,它會將腳本創建爲不使用cygwin的其他系統嗎? –

回答

0

由Microsoft編寫的Unix編寫的DOS語法類似於Unix。這是他們在購買DOS時添加的第一個東西。

& separates commands on a line. 

&& executes this command only if previous command's errorlevel is 0. 

|| (not used above) executes this command only if previous command's errorlevel is NOT 0 

> output to a file 

>> append output to a file 

< input from a file 

| output of one command into the input of another command 

^ escapes any of the above, including itself, if needed to be passed to a program 

" parameters with spaces must be enclosed in quotes 

+ used with copy to concatenate files. E.G. copy file1+file2 newfile 

, used with copy to indicate missing parameters. This updates the files modified date. E.G. copy /b file1,, 

%variablename% an inbuilt or user-set environment variable 

!variablename! a user-set environment variable expanded at execution time, turned with command SetLocal EnableDelayedExpansion 

%<number> (%1) the nth command line parameter passed to a batch file. %0 is the batch file's name. 

%* (%*) the entire command line. 

%<a letter> or %%<a letter> (%A or %%A) the variable in a for loop. Single % sign at command prompt and double % sign in a batch file. 

此外,由於Windows使用Unix(不同的口味,這取決於版本。當前那些配備了Korn shell中至少,但不是Bash)。根據Windows的版本和版本,它可能在DVD上,或者必須從MS下載。首先,請查看控制面板中的Windows程序和功能以開啓。否則,http://www.microsoft.com/en-au/download/details.aspx%3Fid%3D274&rct=j&frm=1&q=&esrc=s&sa=U&ei=KgY8VaGtC4W1mAWVqoCQCQ&ved=0CB8QFjAB&usg=AFQjCNEpycuKGGDSnWw8_RExMybUkITv3Q

Windows NT是運行其他操作系統的操作系統。 Windows,OS/2 2.1和幾個POSIX/Unix實現。

+1

在基於NT的系統上沒有更多的dos。 dos中斷只會導致頁面違例。 cmd.exe是command.com的後繼版本,它是一個原生的win32(win64)應用程序。只有dos的模擬器。 – peterh

+0

我沒有提到dos,我說過Windows,OS/2(NT4以前)和unix/posix。而NT有Dos 5.5,但是這是一個Win32模擬器,而不是一個單獨的操作系統,這就是爲什麼我沒有提到它。但是我們的命令行synax來自MS的unix程序員,他們發佈了Dos ver 2 – Trigger

+0

您提到DOS兩次,這本身並不是問題,如果您還提到了DOS批處理語言的擴展版本(雖然具有不同的版本技術基礎)仍然在當今基於NT的Windows平臺上使用(請參閱https://en.wikipedia.org/wiki/Cmd.exe)。您的語法概述對想要學習如何創建_batch文件_的人有幫助,但對於希望使用'bash'技術和現有Unix shell腳本的人不會有幫助。真正希望切換到Windows「本地技術」的人可能會認爲PowerShell是「bash」和Unix實用程序。 – mklement0

3

您可以在窗口中使用完全bash。它是Cygwin發行版的一部分。

還有MinGW,它試圖成爲一個簡約的Cygwin。在我看來,它目前幾乎同樣大,並且存在主要問題 - 其集成終端仿真器mintty的唯一例外。

作爲替代方案,如果您需要本機技術,則可以使用PowerShell。但它需要大量的適應,大多數bash功能並不是微不足道的。

在類似的情況下,我通常使用cygwin64和mintty(AFAIK它也包含在cygwin中)。

+1

不錯的概述;如果你只需要'bash' +工具,MinGW的配套產品MSYS就足夠了:http://www.mingw.org/wiki/MSYS – mklement0

+1

@ mklement0非常感謝! – peterh