kommandolinje - kopi liste over semikolon afgrænsede filer fra txt fil til given mappe i windows cmd

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har tekstfil, der indeholder f.eks .:


c:	est	est1.txt;d:	est2j.js;d:test22.cs


Jeg skal kopiere de filer, der er afgrænset ved hjælp af Windows-kommandolinjebutfilen til den givne mappe, der sendes til batfilen. Hvordan kan jeg opnå dette?

Bedste reference


Meget let, faktisk:


for /f \%\%l in (somefile.txt) do (
    for \%\%f in (\%\%l) do (
        copy "\%\%f" \%1
    )
)


Den første loop gentages line-wise over filen; den anden vil splitte ved semikoloner (og andre ting, fx mellemrum og kommaer). Hvis filnavnet ligner dem, du har angivet, skal det fungere.


Hvis kopieringsdestinationen (s) også ligner det, skal du blot tilføje to looper, naturligvis:


for /f \%\%l in (somefile.txt) do (
    for \%\%f in (\%\%l) do (
        for /f \%\%k in (destination.txt) do (
            for \%\%g in (\%\%k) do (
                copy "\%\%f" \%\%g
            )
        )
    )
)

Andre referencer 1


Du kan kopiere filer fra filliste med følgende batch-fil kommando:


for /f "usebackq delims=;" \%\%f in (filelist.txt) do copy \%\%f \%1


Forudsat filelist.txt har hvert filnavn på en separat linje:


c:	est	est1.txt;
d:	est2j.js;
d:	est22.cs


Ingen idé om, hvordan man analyserer enkeltlinje dog.