2016-12-06 5 views
-3

Ich würde gerne eine Beschreibung der Änderungsliste von notfall, die beinhaltet Aufruf einer p4 Beschreibung -s, so dass die Ausgabe wäre wie folgt. Gibt es einen Weg, um aus der Ausgabe zu erhalten (getrimmte Zeichen aus der dritten Zeile), nur mit Windows Batch-Syntax?Wie bekomme ich eine bestimmte Zeile von der Befehlsausgabe im Batch-Skript in eine Variable?

Change 6582 by username on 2016/12/06 00:35:41 

     MyChangeDescription 

Affected files ... 

... //depot/foo.txt#7 edit 
... //depot/foo2.txt#6 edit 

Antwort

1

Geben Sie diesen einen Schuss:

p4 -Ztag -F %Description% change -o 6582 
+0

Dies hat den Trick, und machte mein Bedürfnis, mehrere Zeilen veraltet zu lesen, danke. – Joe

1
@ECHO OFF 
SETLOCAL 
SET "sourcedir=U:\sourcedir" 
SET "filename1=%sourcedir%\q40986156.txt" 
FOR /f "usebackqskip=2tokens=*" %%a IN ("%filename1%") DO (
SET "desc=%%a" 
GOTO show 
) 

:show 
ECHO "%desc%" 

GOTO :EOF 

Sie müßten die Einstellung von sourcedir zu ändern, um Ihre Umständen anzupassen.

Ich habe eine Datei mit dem Namen q40986156.txt verwendet, die Ihre Daten für meine Tests enthält.

Dies verwendet eine Datei als Eingabe. Da ich keinen Zugriff auf perforce habe, kann ich es nicht getestet, aber

@ECHO OFF 
SETLOCAL 
FOR /f "skip=2tokens=*" %%a IN ('p4 describe -s') DO (
SET "desc=%%a" 
GOTO show 
) 

:show 
ECHO "%desc%" 

GOTO :EOF 

sollten gleichwertig sein.

Lesen Sie einfach die Ausgabe des Befehls, überspringen Sie die ersten 2 Zeilen, Token die gesamte Zeile, überspringen führende Leerzeichen. Weisen Sie die gefundene Zeichenfolge einer Variablen zu und beenden Sie die Schleife sofort.

+0

danke dies beantwortete die Frage die Art und Weise, wie ich es formuliert habe, so fühlt sich an wie beide Antworten akzeptiert werden müssen ... – Joe

Verwandte Themen