windows - Force passerer lange filnavne til DOS for kommando

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har problemer med at følge simple dos command:


FOR \%\%f IN (.7\_PROCEDURESDataSources*.sql) DO echo "\%\%f"


Det gør noget for hver fil med sql udvidelse. Alt fungerer fint, undtagen lange navne. Når mappen indeholder filer, med sql\_ udvidelser, bliver de også hentet op. Men denne adfærd afhænger af, om 8,3 filer er tændt eller slukket på filsystemet. Hvis de er tændt (standardvalg på de fleste computere), sql\_ er bestået, fordi udvidelsen er beskåret. [8]


Sådan tvinges for hente lange filnavne? Tak!


P.S. Ikke tilbyde powerhell opgradering.

Bedste reference


Du kan prøve at undersøge forlængelsen i selve løkken


for \%\%f in (*.sql) do  (
  if /i "\%\%~xf" EQU ".sql" echo \%\%f
)

Andre referencer 1


Du kan prøve noget som dette:


for /f "usebackq delims=" \%\%f in (`dir /b .*.sql ^| findstr /r .*.sql$`) do @echo "\%\%f"