Quiero enviar información a un archivo de registro como tal
01/08/2013 14:30 - Dynamic-Machine-Name - Message starts
02/08/2013 07:12 - DynamicMachineName - Log entry
02/08/2013 07:14 - Dynamic-PC-Name - Information here
02/08/2013 08:01 - PC-Name - Execution continues
03/08/2013 09:00 - Dynamic-Name - Message starts
03/08/2013 15:29 - Dynamic-Machine-Name - Log information
03/08/2013 15:30 - Random-Machine-Name - Message etc.
Pero para alinear el mensaje de registro en el lado derecho, necesito calcular la longitud del nombre de la máquina, lo que hice, y deducirlo de la longitud máxima para obtener un número de espacios.
Lo que no puedo resolver es cómo producir una cadena que contenga 'x' número de espacios, o agregar esos 'x' números de espacios al final del nombre de la máquina.
batch-file
string-manipulation
concatenation
Gandhi Manning
fuente
fuente
BASH
, perdón por eso ... Ya no uso mucho Windows para tener unbatch/dos/powershell
equivalente. Estoy seguro de que alguien llegará pronto.DOS
equivalente, ¿verdad?myfile.bat
así que cualquier cosa que se ejecuta, podría muy bien ser el lenguaje cmd.exeRespuestas:
Ni siquiera tiene que calcular la longitud del nombre de su máquina. Solo necesita saber cuántos caracteres quiere antes de su mensaje.
Digamos que desea que su mensaje comience en la posición 44. Ya tiene su marca de tiempo y las cadenas de nombre de su máquina. La marca de tiempo es de ancho constante, pero el ancho del nombre de la máquina varía.
Cree una variable que tenga su marca de tiempo, seguida del nombre de su máquina, seguido de 43 espacios. Luego tome una subcadena del resultado, conservando solo los primeros 43 caracteres, y agregue su mensaje.
- SALIDA -
Para obtener más información sobre las operaciones de subcadena variable (y también buscar y reemplazar), escriba
HELP SET
oSET /?
desde un símbolo del sistema.fuente