windows - Sådan oprettes en loop i kommandolinjen?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg forsøgte denne kommando


for /r \%v in (*.abc) do abcconvert -toOgawa \%v \%v


og mit resultat er:


E:PROGRAMMESHOUDINIin>abcconvert -toOgawa E:PROGRAMMESHOUDINIinMesh01\_00009.abc E:PROGRAMMESHOUDINIinParticleMesh01\_00009.abc
Error: inFile and outFile must not be the same!


Jeg skrev bare en sløjfe, men det er det samme svar for alle mine sløjfer.


Jeg tror, ​​at min sløjfe er god, men jeg ved ikke, hvordan jeg ændrer navnet på min udgang. Jeg vil gerne have nøjagtig samme sti, men bare newfile0001 derefter newfile0002 og så videre. For eksempel


Jeg forsøger at gøre dette, fordi jeg har mange filer, der skal konverteres, og den oprindelige kommando til at gøre dette er:


abcconvert -toOgawa file.abc newfile.abc

Bedste reference


gode nyheder: din løkke fungerer godt.

Problemet er \%v \%v, hvilket er det samme filnavn for input og output.

Du skal ændre det på en eller anden måde. Se for /f i nærheden af ​​enden er der 'modifikatorer'.


Der er mange måder at ændre uddatafilenavnet på, mange af dem kan kun udføres med disse modifikatorer.


Nemeste måde: Bare skift forlængelsen:


for /r \%v in (*.abc) do abcconvert -toOgawa \%v \%~dpnv.new



  ParticleMesh01\_000000.new



Men du kan også tilføje en streng til filnavnet (før udvidelsen):


for /r \%v in (*.abc) do abcconvert -toOgawa \%v \%~dpnv-new\%~xv



  ParticleMesh01\_000000-new.abc