windows - Batch omdirigere output stderr til fil og piped output stdout til fil

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har et backup script, der kalder SVN dump, output stderr til en fil så rør output til 7zip.


Jeg skal nu porte dette system til Windows ved hjælp af en batch-fil, men jeg kan ikke synes at få adgang til filen to gange i den ene linje som Linux vil lade mig, er der en alternativ syntaks?


svnadmin dump D:Repoexample 2>> \%logfile\% | 7za a new.7z >> \%logfile\%


(ovenfor er blot et eksempel)


I Windows, hvis jeg forsøger at gøre dette, får jeg en fejl, at filen allerede er tilgængelig. Hvordan kan jeg sikre mig, at jeg får fejl både fra svnadmin og også fra 7za til min logfil?

Bedste reference


Du kan også bruge en blok til at omdirigere begge til logfilen direkte.


Omdirigere stdout med 1>>&2 til stderr og kombiner derefter begge med parentesen og omdirigere den med en enkelt 2>> til logfilen.


(svnadmin dump D:Repoexample | 7za a new.7z 1>>&2 ) 2>> \%logfile\%

Andre referencer 1


Dette gør tricket for mig:


( svnadmin dump D:Repoexample 2>> \%logfile\% | 7za a new.7z >> \%logfile\%.tmp ) & copy \%logfile\%+\%logfile\%.tmp