scharff Juniormester
20. marts 2019 - 14:16 Der er 26 kommentarer og
3 løsninger

Dos fil

Hej
Jeg ville lave en bat fil der kan kopiere mapper med C til en anden mappe og omdøbe den til T i en kommandoprompt.

Eks.: C: \ a \ dmc \ C24117 til C: \ b \ dmc \ T24117

I mappen C: \ a \ dmc \ er der også mapper og filer, der ikke starter med bogstavet C, de skal ikke kopieres.

pft.
sidwave Ekspert
20. marts 2019 - 15:03 #1
ikke forstået. den linie er ikke en copy command.
hvis du vil undgå filer med C skal du lave en $variabel og undgå den
claes57 Ekspert
20. marts 2019 - 15:27 #2
1) kopier
2) omdøb
xcopy c:\a\dmc\c*.* c:\b\dmc /s
ren c:\b\dmc\c*.* t*.* /s

jeg ved ikke lige, om ren kan have /s
har valgt xcopy, da den er mere effektiv ved mange/store filer (copy tager en fil ad gangen, xcopy tager alt, som den har ram til pr gang)
scharff Juniormester
21. marts 2019 - 06:49 #3
Hej claes57
Det virker ikke ?
C:\CNC>xcopy c:\a\dmc\c*.* c:\b\dmc /s
File not found - c*.*
0 File(s) copied
claes57 Ekspert
21. marts 2019 - 07:54 #4
så er der nok ingen filer, der starter med c ifølge xcopy
scharff Juniormester
21. marts 2019 - 08:18 #5
Nej der er ingen filer, men der er mapper der starter med c
claes57 Ekspert
21. marts 2019 - 08:28 #6
Så test samme kommandolinje med copy i stedet for xcopy.
scharff Juniormester
21. marts 2019 - 08:52 #7
Virker desværre heller ikke

copy c:\a\dmc\c*.* c:\b\dmc /s
The system cannot find the path specified.
claes57 Ekspert
21. marts 2019 - 11:15 #8
så rækker mine dos-kundskaber ikke længere, beklager...
RogerWilco Seniormester
25. marts 2019 - 18:33 #9
Prøv dette:

@echo off
set src=c:\a\dmc
set dest=c:\b\dmc
setlocal enabledelayedexpansion
for /f %%i in ('dir %src%\c*.* /ad /b') do (
  xcopy %src%\%%i\*.* %dest%\%%i /s /i
  ren %dest%\%%i t!%%i:~1!
  )
scharff Juniormester
25. marts 2019 - 19:50 #10
det virker det med at kopiere :-)
men rename virker ikke, mappen kommer bare til at blive til t~1
mappen c24117 skal blive til t24117
RogerWilco Seniormester
26. marts 2019 - 07:55 #11
@echo off
set src=c:\a\dmc
set dest=c:\b\dmc
setlocal enabledelayedexpansion
for /f %%i in ('dir %src%\c*.* /ad /b') do (
  xcopy %src%\%%i\*.* %dest%\%%i /s /i
  set dname=%%i
  ren %dest%\%%i t!dname:~1!
  )
rogerrabbit Forsker
26. marts 2019 - 09:06 #12
xcopy C:\a\ dmc\C*.* C:\b\dmc\T*.*

Jeg har lige testet i en windows 10 commando prompt, både med  copy og xcopy.
Det virker fint.


/s så tager den under biblioteker med

@Claes i #2, jeg mener du glemmer \ *.* i dit target under kopieringen, så vidt jeg kan se kommer du til at kopiere til en fil der hedder dmc i biblioteket b.
Det kan være jeg tager fejl / husker forkert

hvis du vil kopiere alle filer fra et bibliotek til et andet skal den hedde:
copy c:\test\*.* c:\hest\*.*
scharff Juniormester
26. marts 2019 - 09:55 #13
rogerrabbit
kopiere virker som det skal, det er rename der ikke virker ?
rogerrabbit Forsker
26. marts 2019 - 10:28 #14
hmmm, det virker fint hos mig.

Jeg har forsøgt at lave et "outout" så du kan se det.
og som du kan se kopierer og omdøber den i en kommando.

Volume in drive C has no label.
Volume Serial Number is 90CF-B78F

Directory of C:\a\dmc

26-03-2019  10:18    <DIR>          .
26-03-2019  10:18    <DIR>          ..
26-03-2019  10:17                6 C24117.txt
26-03-2019  10:18                0 output.txt
              2 File(s)              6 bytes
              2 Dir(s)  20.024.954.880 bytes free


Volume in drive C has no label.
Volume Serial Number is 90CF-B78F

Directory of c:\b\dmc

26-03-2019  10:16    <DIR>          .
26-03-2019  10:16    <DIR>          ..
              0 File(s)              0 bytes
              2 Dir(s)  20.023.586.816 bytes free


C:\>xcopy c:\a\dmc\C*.* c:\b\dmc\T*.*

C:\a\dmc\C24117.txt
1 File(s) copied

Volume in drive C has no label.
Volume Serial Number is 90CF-B78F

Directory of c:\b\dmc

26-03-2019  10:21    <DIR>          .
26-03-2019  10:21    <DIR>          ..
26-03-2019  10:17                6 T24117.txt
              1 File(s)              6 bytes
              2 Dir(s)  20.026.920.960 bytes free
rogerrabbit Forsker
26. marts 2019 - 11:04 #15
Lige øjeblik,
har jeg misforstået opgaven?

er det i a eller b biblioteket filerne skal omdøbes?

Hvis du vil kopiere fra a til b, og så omdøbe filerne i a, skal du bruge 2 kommandoer som i #2.

xcopy c:\a\dmc\C*.* c:\b\dmc\*.*
ren c:\a\dmc\C*.* c:\a\dmc\T*.*
rogerrabbit Forsker
26. marts 2019 - 11:08 #16
Måske du lige skulle prøve at kopiere nogle filer over i et test bibliotek og lege med.
scharff Juniormester
26. marts 2019 - 11:21 #17
Det er ikke filer der skal omdøbes, kun mapper 😉
rogerrabbit Forsker
26. marts 2019 - 15:42 #18
OKay så :)

Den er lidt sjovere :)

jeg prøver lige at lege lidt.
jeg er først tilbage på torsdag :(
scharff Juniormester
26. marts 2019 - 16:31 #19
RogerWilco
Er det muligt at flytte istedet for at kopiere ?

@echo off
set src=c:\a\dmc
set dest=c:\b\dmc
setlocal enabledelayedexpansion
for /f %%i in ('dir %src%\c*.* /ad /b') do (
  xcopy %src%\%%i\*.* %dest%\%%i /s /i
  set dname=%%i
  ren %dest%\%%i t!dname:~1!
  )
scharff Juniormester
26. marts 2019 - 17:55 #20
Eller hvis man bare kan slette mapper med C ? så ville det også være en løsning
RogerWilco Seniormester
27. marts 2019 - 08:34 #21
Det burde så bare være:

@echo off
set src=c:\a\dmc
set dest=c:\b\dmc
setlocal enabledelayedexpansion
for /f %%i in ('dir %src%\c*.* /ad /b') do (
  move %src%\%%i %dest%
  set dname=%%i
  ren %dest%\%%i t!dname:~1!
  )
scharff Juniormester
27. marts 2019 - 15:41 #22
Der sker noget underligt der er 1 mappe den tager filerne ud af hver gang jeg bruger move command der er 5 andre mapper som bliver flyttet som de skal....

Kan man bare lave en command så man sletter de mapper der starter med C ?
så kan jeg bare bruge xcopy det virker hver gang :-)
RogerWilco Seniormester
27. marts 2019 - 20:53 #23
Det lyder underligt, hvis sådan bare lige udelader en mappe. Har du den pågældende mappe åben i stifinderen (eller andre programmer), eller er der underlige bogstaver (æøå eller udenlandske tilsvarende) i mappe- eller filnavne?

Hvis man skal bruge xcopy med efterfølgende sletning af mappe, kunne det se således ud:

@echo off
set src=c:\a\dmc
set dest=c:\b\dmc
setlocal enabledelayedexpansion
for /f %%i in ('dir %src%\c*.* /ad /b') do (
  xcopy %src%\%%i\*.* %dest%\%%i /s /i
  set dname=%%i
  ren %dest%\%%i t!dname:~1!
  rd %src%\%%i /s /q
  )
rogerrabbit Forsker
28. marts 2019 - 10:08 #24
Godt I har fundet en løsning :)

Og jeg er helt enig i at move er bedre at bruge, hvis de gamle biblioteker alligevel skal slettes.

Jeg har leget lidt med xcopy, men har heller ikke fået det til at virker på biblioteker :(
scharff Juniormester
28. marts 2019 - 21:36 #25
RogerWilco
du er for sindsyg til det............ :-) :-) :-) Tak
scharff Juniormester
05. april 2019 - 10:28 #26
RogerWilco
Jeg ville bare høre dig om det er besværligt at få den til at kunne gøre det samme med mapper med mellemrum ?
Eks.: C: \ a \ dmc \ C24117 Hans til C: \ b \ dmc \ T24117 Hans

pft.
RogerWilco Seniormester
19. april 2019 - 10:49 #27
Ups, jeg glemte vist at besvare denne - prøv nedenstående:

@echo off
set src=c:\a\dmc
set dest=c:\b\dmc
setlocal enabledelayedexpansion
for /f "delims=§" %%i in ('dir "%src%\c*.*" /ad /b') do (
  xcopy "%src%\%%i\*.*" "%dest%\%%i" /s /i
  set dname=%%i
  ren "%dest%\%%i" "t!dname:~1!"
  rd "%src%\%%i" /s /q
  )
scharff Juniormester
23. april 2019 - 07:39 #28
Hej jeg prøvede dette, men virker ikke ?
@echo off
set src=c:\a\"dmc 2"
set dest=c:\b\"dmc 2"
setlocal enabledelayedexpansion
for /f "delims=§" %%i in ('dir "%src%\c*.*" /ad /b') do (
  xcopy "%src%\%%i\*.*" "%dest%\%%i" /s /i
  set dname=%%i
  ren "%dest%\%%i" "T!dname:~1!"
  rd "%src%\%%i" /s /q
  )
RogerWilco Seniormester
23. april 2019 - 14:21 #29
Når man normalt angiver mappenavne med mellemrum, skal det være hele stien der er omfattet af anførselstegn, f.eks.:
dir "c:\a\dmc 2"

I dit tilfælde skal der dog ikke bruges anførselstegn i set-kommandoerne, da de allerede er med i kommandoerne med selve fil-tilgangen - dvs. dir/xcopy/ren/rd.

Så du skal bare skrive
set src=c:\a\dmc 2
set dest=c:\b\dmc 2
Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links

Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester





Premium
It-fejl hos politiet kan have givet forkerte domme gennem syv år
Der er blevet opdaget en fejl i forbindelse med politiets behandling af teledata. Det kan have konsekvenser for domme, der er blevet afsagt i en syvårig periode.
Computerworld
Huawei klar med patent på sit nye mobil-styresystem i ni europæiske lande
Den kinesiske mobilproducent Huawei er nu klar til at patentere sit nye styresystem til sine telefoner i ni europæiske lande.
CIO
Beslutningsprocesser, der slår ihjel
Men de fleste af os lever i en virksomhedskultur, hvor ingen er blevet fyret for at vælge IBM - og ingen er blevet fyret for at igangsætte endnu en analyse. Og man kommer måske et stykke vej med analyse. Men man kommer i mål med handling.
Job & Karriere
"Vi var fem mennesker, der fik 400 millioner kroner, et lokale på 12 m2 og et stempel fra Undervisningsministeriet. Det kalder jeg mit første start-up. Det blev til IT-Universitetet. "
"Da jeg var færdig med PhD´en så var vi fem mennesker, der fik 400 millioner kroner, et lokale på 12 m2 og et stempel fra Undervisningsministeriet. Så skulle vi bare have et nyt universitet op og køre på seks måneder. Det kalder jeg mit første start-up. Det blev til IT-Universitetet."
White paper
Netværk uden vokseværk
Tilpasning af traditionelle netværk til stadigt nye krav, udvidelser og forandringer er dyrt, besværligt og usikkert. En enkelt forkert lavet indstilling kan føre til sårbarhed. En måde til at forenkle installationen og administrationen er at gå over til virtual cloud networks, skriver VMware. Al netværkstrafik går gennem et cloud-baseret softwarelager, der styres i henhold til politikken fra et enkelt centralt panel.