Commandline opdracht bestanden uit txt bestand verplaatsen

Pagina: 1
Acties:

Vraag


  • aquinox
  • Registratie: Mei 2019
  • Laatst online: 10-09 09:45
Welke commandline opdracht moet ik gebruiken als ik bestanden die in een txt bestand elk een rij onder elkaar staan wil verplaatsen naar een andere map?

Relevante software en hardware die ik gebruik
win10

Wat ik al gevonden of geprobeerd heb
Vele tools voor ubuntu of andere programmeersystemen, niet voor windows

[ Voor 3% gewijzigd door aquinox op 27-02-2020 13:43 ]

Beste antwoord (via aquinox op 27-02-2020 22:29)


  • NostraDavid
  • Registratie: Oktober 2019
  • Laatst online: 18-05 23:55
Ik gebruik Powershell omdat deze veel duidelijkere opdrachten produceert (IMO):
Ik heb bestanden.txt met dit als inhoud:
code:
1
2
3
C:\Users\David\Desktop\a.txt
C:\Users\David\Desktop\b.txt
C:\Users\David\Desktop\c.txt

Dan kan ik onderstaande opdracht uitvoeren in dezelfde map als bestanden.txt:
code:
1
Get-Content .\bestanden.txt | Where-Object {Move-Item $_ D:\}

Get-Content lees het bestand uit en split het bestand in lijnen. Dan gebruiken we Where-Object om bij elke lijn te kunnen ($_ refereert naar elke individuele lijn text). Als laatst wil ik dan elke lijn text in opdracht Move-Item injecteren en verplaatsen naar mijn D:\ schijf (je kan hier ook gewoon een C:\whatever\ plaatsen. Let op dat als je een spatie hebt, je double quotes moet gebruiken: "C:\Users\David\Mijn Documenten\") :)

Protips:
Alle Powershell cmdlets zijn werkwoord-zelfstandig naamwoord (of actie-object, if you will).
Als je Get-Command Get-* uitvoert krijg je een complete lijst met alle Get cmdlets.
Een aantal linux commando's als ls of mv werken ook omdat dit aliassen zijn. Voer de Get-Alias cmdlet uit om de lijst met alle aliassen van Powershell te krijgen.

[ Voor 4% gewijzigd door NostraDavid op 27-02-2020 14:43 ]

Alle reacties


  • Erazher
  • Registratie: November 2011
  • Laatst online: 02-08 21:50
https://www.windows-commandline.com/move-files-directories/

Maar wat bedoel je nou met in een txt bestand elk een rij onder elkaar?

Bedoel je meerdere txt bestanden in een map en dan 1 voor 1 over zetten naar een andere map?
Bedoel je in de txt bestand meerdere regels onder elkaar die dan over worden gezet in een nieuwe txt bestand in een andere map?

  • The Eagle
  • Registratie: Januari 2002
  • Laatst online: 09:28

The Eagle

I wear my sunglasses at night

Dan gebruik je de verkeerde zoektermen ;)
https://www.google.com/search?q=batch+move+files+in+list

Vervang "batch" door "powershell" en je krijg ook een hoop hits

Command line programmeertaal van windows / DOS heet batch en powershell is nog wat krachtiger ;)
Eerste google hit: https://www.dostips.com/forum/viewtopic.php?t=4343

En voor powershell: https://stackoverflow.com...ilenames-from-a-text-file

Al is het nieuws nog zo slecht, het wordt leuker als je het op zijn Brabants zegt :)


Acties:
  • Beste antwoord
  • +1 Henk 'm!

  • NostraDavid
  • Registratie: Oktober 2019
  • Laatst online: 18-05 23:55
Ik gebruik Powershell omdat deze veel duidelijkere opdrachten produceert (IMO):
Ik heb bestanden.txt met dit als inhoud:
code:
1
2
3
C:\Users\David\Desktop\a.txt
C:\Users\David\Desktop\b.txt
C:\Users\David\Desktop\c.txt

Dan kan ik onderstaande opdracht uitvoeren in dezelfde map als bestanden.txt:
code:
1
Get-Content .\bestanden.txt | Where-Object {Move-Item $_ D:\}

Get-Content lees het bestand uit en split het bestand in lijnen. Dan gebruiken we Where-Object om bij elke lijn te kunnen ($_ refereert naar elke individuele lijn text). Als laatst wil ik dan elke lijn text in opdracht Move-Item injecteren en verplaatsen naar mijn D:\ schijf (je kan hier ook gewoon een C:\whatever\ plaatsen. Let op dat als je een spatie hebt, je double quotes moet gebruiken: "C:\Users\David\Mijn Documenten\") :)

Protips:
Alle Powershell cmdlets zijn werkwoord-zelfstandig naamwoord (of actie-object, if you will).
Als je Get-Command Get-* uitvoert krijg je een complete lijst met alle Get cmdlets.
Een aantal linux commando's als ls of mv werken ook omdat dit aliassen zijn. Voer de Get-Alias cmdlet uit om de lijst met alle aliassen van Powershell te krijgen.

[ Voor 4% gewijzigd door NostraDavid op 27-02-2020 14:43 ]


  • aquinox
  • Registratie: Mei 2019
  • Laatst online: 10-09 09:45
NostraDavid schreef op donderdag 27 februari 2020 @ 14:41:
Ik gebruik Powershell omdat deze veel duidelijkere opdrachten produceert (IMO):
Ik heb bestanden.txt met dit als inhoud:
code:
1
2
3
C:\Users\David\Desktop\a.txt
C:\Users\David\Desktop\b.txt
C:\Users\David\Desktop\c.txt

Dan kan ik onderstaande opdracht uitvoeren in dezelfde map als bestanden.txt:
code:
1
Get-Content .\bestanden.txt | Where-Object {Move-Item $_ D:\}

Get-Content lees het bestand uit en split het bestand in lijnen. Dan gebruiken we Where-Object om bij elke lijn te kunnen ($_ refereert naar elke individuele lijn text). Als laatst wil ik dan elke lijn text in opdracht Move-Item injecteren en verplaatsen naar mijn D:\ schijf (je kan hier ook gewoon een C:\whatever\ plaatsen. Let op dat als je een spatie hebt, je double quotes moet gebruiken: "C:\Users\David\Mijn Documenten\") :)

Protips:
Alle Powershell cmdlets zijn werkwoord-zelfstandig naamwoord (of actie-object, if you will).
Als je Get-Command Get-* uitvoert krijg je een complete lijst met alle Get cmdlets.
Een aantal linux commando's als ls of mv werken ook omdat dit aliassen zijn. Voer de Get-Alias cmdlet uit om de lijst met alle aliassen van Powershell te krijgen.
Thanks! Exactly what I needed