Windows Batch flytter til bibliotek, der muligvis ikke eksisterer

Indlæg af Hanne Mølgaard Plasc

Problem



I en Windows-batchfil forsøger jeg at flytte en fil til en mappe, der muligvis ikke findes i øjeblikket. Fordi mappen ikke er der, når jeg går, ser jeg en fejl som:


Systemet kan ikke finde den angivne sti


move c:aaabbcccdddmyfile.txt c:aaa111222333444mytext.txt


Hvordan kan jeg nemt oprette den sti, jeg vil flytte til, hvis den ikke eksisterer? For eksempel her kan mappe 111 muligvis ikke eksistere endnu under aaa. Jeg vil have hele sti-strukturen oprettet, og så flyttes filen. < br>
Jeg havde troet, at det bare ville skabe hele vejen for mig som led i flytningen.

Bedste reference


Prøve:


md c:aaa111222333444 2> nul


før din kommando Flyt.


md gør kataloger rekursive, så hvis der ikke er nogen overordnede kataloger til 444, vil det fortsætte med at skabe hierarkisk. '2> nul' sikrer, at hvis du har mappen allerede, ville din kommando ikke fejl.

Andre referencer 1


Hvis ROBOCOPY er en mulighed, vil den oprette mappestrukturen, hvis den ikke eksisterer.


Prøv dette:


ROBOCOPY c:aaabbcccddd c:aaa111222333444 mytext.txt /MOV

Andre referencer 2


if not exist c:aaa111222333444 md c:aaa111222333444
Move c:aaabbcccdddmyfile.txt c:aaa111222333444mytext.txt

Andre referencer 3


Fortsat på Aruns svar:


md c:aaa111222333444mytext.txt
rd c:aaa111222333444mytext.txt
move c:aaabbcccdddmyfile.txt c:aaa111222333444mytext.txt


Dette skaber en mappe, der hedder mytext.txt og dens forældre, og derefter sletter den, men ikke forældrene.


Mere sjov:


call :move\_md "c:aaabbcccdddmyfile.txt" "c:aaa111222333444mytext.txt"
call :move\_md "c:aaabbcccdddmyfile1.txt" "c:aaa111222333444mytext4.txt"
call :move\_md "c:aaabbcccdddmyfile2.txt" "c:aaa111222333444mytext5.txt"
call :move\_md "c:aaabbcccdddmyfile3.txt" "c:aaa111222333444mytext6.txt"
goto :eof

:move\_md
md \%2
rd \%2
move \%1 \%2
goto :eof

Andre referencer 4


Lad os sige, at du har følgende katalogstruktur.


C:aaabbcccddd


du vil oprette en mappe kaldet 111 under aaa, derefter 222 under 111, derefter 333 under 444 og så videre


Vindues cmd giver dig mulighed for at oprette en mappestruktur ved at levere multi level path


dermed
md c:aaa111222333444 vil oprette hele mappen til 444.


Du kan måske oprette mappen først og derefter udføre flytningen