Necesito unir dos archivos binarios con un *.bat
script en Windows.
¿Cómo puedo lograr eso?
windows
command-line
scripting
Artem Tikhomirov
fuente
fuente
type
puede reemplazar solo una parte decat
la funcionalidad de (debido a la distinción entre archivos binarios y de texto en Windows).Respuestas:
El
type
comando de Windows funciona de manera similar a UNIXcat
.Ejemplo 1:
es equivalente a:
Ejemplo 2
Este comando fusionará todas las vcards en una.
fuente
type file1 file2 > file3 2>NUL
Puedes usar
copy /b
así:fuente
type
descritos en los comentarios sobre la respuesta aceptada ... ¡a menos que esta solución tenga inconvenientes similares pero no sea lo suficientemente popular como para que la gente los note!Si tiene control sobre la máquina donde está haciendo su trabajo, le recomiendo instalar GnuWin32 . Simplemente "Descargar todo" y deje que el programa wget recupere todos los paquetes. Luego tendrá acceso a cat, grep, find, gzip, tar, less y cientos de otros.
GnuWin32 es una de las primeras cosas que instalo en una nueva caja de Windows.
fuente
Shameless PowerShell plug (porque creo que la curva de aprendizaje es un dolor, por lo que enseñar algo en cualquier oportunidad puede ayudar)
Tenga en cuenta que
type
es un alias para Get-Content, por lo que si le gusta más, puede escribir:fuente
type file1 file2 > dest
y cada uno se hizo en segundos.'\n'
puede ser reemplazado con'\r\n'
-Encoding UTF8
No cambió nada.Simplemente use el comando dos copy con múltiples archivos de origen y un archivo de destino.
Es posible que necesite la opción / B para archivos binarios
fuente
En la versión Redstone 1 de Windows 10, Windows agregó un subsistema Linux real para el núcleo NTOS. Creo que originalmente estaba destinado a admitir aplicaciones de Android, y tal vez escenarios de tipo docker. Microsoft se asoció con Canonical y agregó un shell bash nativo real. Además, puede usar el administrador de paquetes apt para obtener muchos paquetes de Ubuntu. Por ejemplo, puede hacer apt-get gcc para instalar la cadena de herramientas GCC como lo haría en una caja de Linux.
Si tal cosa existiera mientras estaba en la universidad, creo que podría haber hecho la mayoría de mis tareas de programación de Unix en el shell nativo de Windows bash.
fuente
Si simplemente desea agregar texto al final del archivo existente, puede usar el >> tubo. ex:
fuente
Si tiene que usar un script por lotes y tiene instalado Python, aquí hay una respuesta polygot en batch y python:
Si se guarda como join.bat, el uso sería:
Gracias también esta respuesta por la inspiración.
fuente
Intento reunirme con el archivo tar que se ha dividido en un servidor Linux.
Y descubrí que si lo uso
type
en Windowscmd.exe
, causará que el archivo se una en un orden incorrecto (es decir, atype
veces pone XXXX.ad al principio y luego XXXX.ac, XXXX.aa, etc.)Entonces, encontré una herramienta llamada
bat
en GitHub https://github.com/sharkdp/bat que tiene una compilación de Windows y tiene un mejor resaltado de código y lo importante es que funciona bien en Windows para unirse al archivo tar.fuente
Así que estaba buscando una solución similar con la habilidad de preservar los caracteres de EOL y descubrí que no había forma, así que hago lo que mejor hago e hice mi propia utilidad. Este es un gato nativo ejecutable para Windows: https: // mega. nz / #! 6AVgwQhL! qJ1sxx-tLtpBkPIUx__iQDGKAIfmb21GHLFerhNoaWk
Lo llamo Sharp-cat ya que está construido con C #, no dude en escanear con un antivirus y el código fuente estará disponible a pedido
fuente
El comando de tipo Windows tiene problemas, por ejemplo, con caracteres Unicode en el límite de 512 bytes. Prueba el gato de Cygwin.
fuente