質問

2 つのバイナリ ファイルを *.bat Windows 上のスクリプト。

どうすればそれを達成できますか?

役に立ちましたか?

解決

ウィンドウズ type コマンドはUNIXと同様に動作します cat.

例 1:

type file1 file2 > file3

は以下と同等です:

cat file1 file2 > file3

例 2:

type  *.vcf > all_in_one.vcf  

このコマンドは、すべての vcard を 1 つにマージします。

他のヒント

使用できます copy /b このような:

copy /b file1+file2 destfile

作業を行っているマシンを制御できる場合は、インストールすることを強くお勧めします。 GnuWin32. 。「すべてダウンロード」するだけで、wget プログラムにすべてのパッケージを取得させます。これにより、cat、grep、find、gzip、tar、less、その他多数のコマンドにアクセスできるようになります。

GnuWin32 は、新しい Windows ボックスに最初にインストールするものの 1 つです。

恥知らずな PowerShell プラグ (学習曲線は苦痛だと思うので、あらゆる機会に何かを教えることが役に立つと思うからです)

Get-Content file1,file2

ご了承ください type は Get-Content のエイリアスなので、それが気に入った場合は、次のように記述できます。

type file1,file2

複数のソース ファイルと 1 つの宛先ファイルを指定して dos copy コマンドを使用するだけです。

file1+file2をコピーして追加ファイルを追加

バイナリ ファイルには /B オプションが必要になる場合があります

Windows 10 の Redstone 1 リリースでは、Windows は NTOS カーネル用の実際の Linux サブシステムを追加しました。元々は Android アプリと、おそらく Docker タイプのシナリオをサポートすることを目的としていたと思います。Microsoft は Canonical と提携し、実際のネイティブ bash シェルを追加しました。また、apt パッケージ マネージャーを使用して、多くの Ubuntu パッケージを入手することもできます。たとえば、Linux ボックスで行う場合と同様に、apt-get gcc を実行して GCC ツール チェーンをインストールできます。

もし私が大学にいる間にそのようなものが存在していれば、Unix プログラミングの課題のほとんどをネイティブの Windows bash シェルで行うことができたと思います。

既存のファイルの末尾にテキストを追加するだけの場合は、>> パイプを使用できます。元:

echo new text >>existingFile.txt

バッチ スクリプトを使用する必要があり、Python がインストールされている場合は、ここにあります。 ポリゴット バッチとPythonで答えます:

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

ありがとうございます この答え インスピレーションのために。

Linuxサーバーで分割されたtarアーカイブを再結合してみます。

そして、私が使用すると見つけました type Windowsの cmd.exe, 、ファイルが間違った順序で結合されてしまいます。 type 場合によっては、最初に XXXX.ad を置き、次に XXXX.ac 、 XXXX.aa などを置きます...)

そこで、という名前のツールを見つけました bat GitHub内 https://github.com/sharkdp/bat これは Windows ビルドを備えており、より優れたコード ハイライトを備えています。重要なことは、Windows 上で tar アーカイブに再結合するのに問題なく動作することです。

だから私はEOLチャーを維持するための侵害性のある同様の解決策を探していましたが、私は自分が最善を尽くし、自分の実用性を作りました。 https://mega.nz/#!6AVgwQhL!qJ1sxx-tLtpBkPIUx__iQDGKAIfmb21GHLFerhNoaWk

Usage: cat file1 file2 file3 file4 -o output.txt
-o | Specifies the next arg is the output, we must use this rather than ">>" to preserve the line endings

C# で構築されているため、私はこれを Sharp-Cat と呼んでいます。ウイルス対策ソフトで自由にスキャンしてください。ソース コードはリクエストに応じて公開されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top