2008-09-13 58 views
242

我需要在Windows上加入兩個二進制文件和*.bat腳本。在Windows上是否有替換貓的方法

我該如何做到這一點?

+14

您的標題問題和您的描述問題不完全同步。 type將是標題問題的最佳答案,copy/b將是描述問題的最佳答案。如果可能,您可能需要更改該標題。 – Joseph 2008-09-13 06:42:51

+2

@Joseph `type`只能代替`cat`的一部分功能(由於Windows上的二進制和文本文件的不同)。 – jfs 2008-09-13 22:56:35

+1

我討厭Windows沒有使用UNIX/LINUX命令 – winklerrr 2017-04-13 09:06:47

回答

352

的Windows type命令的工作方式類似於UNIX cat/B選項。

實施例1:

type file1 file2 > file3 

是等效的:

cat file1 file2 > file3 

實施例2:

type *.vcf > all_in_one.vcf 

該命令將所有的電子名片合併成一個。

+1

在這種情況下鍵入的問題是在輸入多個指定的文件時添加不需要的文件頭在命令行上。 – 2008-09-13 01:56:29

70

您可以使用copy /b這樣的:

copy /b file1+file2 destfile 
+3

您可以使用像「copy/b file * destfile」這樣的通配符的文件序列 – Stalinko 2014-02-12 11:21:36

3

只需使用DOS複製多個源文件和一個目標文件命令。

拷貝文件1 +文件2 appendedfile

您可能需要爲二進制文件

9

無恥PowerShell的插件(因爲我覺得學習曲線是一種痛苦,所以教於任何一個機會的東西可以幫助)

Get-Content file1,file2 

注意type是獲取內容的別名,所以如果你喜歡它好,你可以寫:

type file1,file2 
20

如果你有超過你做你的工作,其中機器控制,我強烈建議安裝GnuWin32。只需「全部下載」並讓wget程序檢索所有軟件包。然後,您將可以訪問cat,grep,find,gzip,tar,less以及其他數百個。

GnuWin32是我在新Windows窗口上安裝的第一件事情之一。

1

如果您只是想將文本附加到現有文件的末尾,則可以使用>>管道。例如:

echo new text >>existingFile.txt 
0

如果你必須使用一個批處理腳本,並在這裏安裝Python,在批量和Python一個polygot答案:

1>2# :^
''' 
@echo off 
python "%~nx0" " %~nx1" "%~nx2" "%~nx3" 
exit /b 
rem^
''' 
import sys 
import os 

sys.argv = [argv.strip() for argv in sys.argv] 
if len(sys.argv) != 4: 
    sys.exit(1) 

_, file_one, file_two, out_file = sys.argv 

for file_name in [file_one, file_two]: 
    if not os.path.isfile(file_name): 
     print "Can't find: {0}".format(file_name) 
     sys.exit(1) 

if os.path.isfile(out_file): 
    print "Output file exists and will be overwritten" 

with open(out_file, "wb") as out: 
    with open(file_one, "rb") as f1: 
     out.write(f1.read()) 

    with open(file_two, "rb") as f2: 
     out.write(f2.read()) 

如果保存爲join.bat用法是:

join.bat file_one.bin file_two.bin out_file.bin 

也謝謝this answer的靈感。

2

在Windows 10的Redstone 1發行版中,Windows爲NTOS內核添加了一個真正的Linux子系統。我認爲最初它是爲了支持Android應用程序,也許是碼頭類型的場景。Microsoft與Canonical合作並添加了一個實際的本機bash外殼。另外,你可以使用apt軟件包管理器來獲取許多Ubuntu軟件包。例如,您可以像在Linux機器上那樣使用apt-get gcc來安裝GCC工具鏈。

如果我在上大學時存在這樣的事情,我想我可以在本機Windows bash shell中完成大部分的Unix編程任務。

相關問題