windows - Escaping > fungerer ikke i indlejret kommando

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg kører dette på Windows 2003, (har ingen anden mulighed) .


Tag nedenstående kode:


@echo off
for /F "tokens=*" \%\%f in ('Dir /s /b E:file 2^>nul') do (
    @echo \%\%f
)


Dette søger rekursivt efter E: for alle filer, der hedder file. Den udskriver derefter kampen, som ser ud som E:path ofile.


Så, Dir udskriver naturligvis File Not Found efter dennes søgning, dette udskrives til stderr.


Så jeg forsøger at omdirigere stderr med nedenstående (som er i kommandoen ovenfor) :


2^>nul


^ undslipper >, da kommandoen Dir er indlejret. Men jeg får simpelthen fejlen, (på trods af at dette er den fælles løsning af mange) :


> was unexpected at this time


Jeg har testet dette på Windows 7 og det fungerer fint, så jeg forsøger at omslutte > i talemærker, som blev brugt i NT og tidligere (til det bedste af min viden) for at undslippe tegn.


2">"nul


Og dette opfører sig det samme, og lever stadig til stderr.


Nogle ideer?

Bedste reference