Windows で cat に代わるものはありますか
-
09-06-2019 - |
質問
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 と呼んでいます。ウイルス対策ソフトで自由にスキャンしてください。ソース コードはリクエストに応じて公開されます。