Daggs rugga av doskommandon?

Permalänk

Daggs rugga av doskommandon?

Hjärnsläpp

Exempel, jag vill kopiera alla *.txt från c:\1 till c:\2 .

Och c:\1 har underkataloger men allt ska hamna i c:\2.

xcopy eller , får faen inte ihop det.

Permalänk
Hedersmedlem

ChatGPT är riktigt bra på sånt här. En av de få saker jag använder det till.

Citat:

Create a Windows batch script that copies all files under C:\1 to C:\2. The directory structure should be flattened, such that all files in subdirectories end up in C:\2 with no subdirectories.
Write a warning when a file name already exists, and don't overwrite.

Citat:

Here's a Windows batch script that will:

Traverse all files in C:\1, including subdirectories.
Copy them to C:\2 without recreating the directory structure (flattened).
Skip files with duplicate names and print a warning for each.

✅ Batch Script

@echo off setlocal enabledelayedexpansion set "source=C:\1" set "destination=C:\2" REM Create destination folder if it doesn't exist if not exist "%destination%" ( mkdir "%destination%" ) REM Traverse files recursively for /r "%source%" %%f in (*) do ( set "filename=%%~nxf" set "destfile=%destination%\!filename!" if exist "!destfile!" ( echo WARNING: File "!filename!" already exists in %destination%. Skipping. ) else ( copy "%%f" "!destfile!" >nul echo Copied: %%f ) ) echo Done. pause

📝 Notes:

%%~nxf grabs the filename with extension only (e.g., file.txt).
Files with the same name but from different subdirectories will not be overwritten.
Warnings are clearly printed for duplicates.

Want a version that renames duplicates instead of skipping?

Kan bekräfta att det funkar som det är tänkt också, inkl att den inte skriver över.

Visa signatur

Asus ROG STRIX B550-F / Ryzen 5800X3D / 48 GB 3200 MHz CL14 / Asus TUF 3080 OC / WD SN850 1 TB, Kingston NV1 2 TB + NAS / Corsair RM650x V3 / Acer XB271HU (1440p165) / LG C1 55"
NAS: 6700K/16GB/Debian+ZFS | Backup (offsite): 9600K/16GB/Debian+ZFS

Permalänk
Skrivet av Thomas:

ChatGPT är riktigt bra på sånt här. En av de få saker jag använder det till.

Kan bekräfta att det funkar som det är tänkt också, inkl att den inte skriver över.

Hmm detta kunde man göra med "copy" för 30 år sedan vill jag minnas. Och någon version var man tvungen kopiera "help" från dos 6.22 till w95 eller...?

Permalänk
Arvid Nordqvist-mannen

Koden ovan använder ju copy?

Permalänk
Skrivet av tcntad:

Koden ovan använder ju copy?

Menar du copy "%%f" "!destfile!" >nul

Så fanns detta i "copy" på 90 talet.

Skulle skapa denna *.bat och skrev "edit" tom edit är borta......hjälp.

Permalänk
Skrivet av Thomas:

ChatGPT är riktigt bra på sånt här. En av de få saker jag använder det till.

Kan bekräfta att det funkar som det är tänkt också, inkl att den inte skriver över.

Tack nu fungerar det.

Permalänk
Medlem

D:\1>dir Volume in drive D is Data Volume Serial Number is Directory of D:\1 2025-04-26 13:30 <DIR> . 2025-04-26 13:30 <DIR> .. 2025-04-26 13:30 0 New Bitmap Image.bmp 2025-04-26 13:29 0 New Text Document (2).txt 2025-04-26 13:29 0 New Text Document.txt 3 File(s) 0 bytes 2 Dir(s) 362 074 849 280 bytes free D:\1>cd.. D:\>cd 2 D:\2>dir Volume in drive D is Data Volume Serial Number is Directory of D:\2 2025-04-26 13:35 <DIR> . 2025-04-26 13:35 <DIR> .. 0 File(s) 0 bytes 2 Dir(s) 362 074 849 280 bytes free D:\2>xcopy d:\1\*.txt d:\2 D:\1\New Text Document (2).txt D:\1\New Text Document.txt 2 File(s) copied D:\2>dir Volume in drive D is Data Volume Serial Number is Directory of D:\2 2025-04-26 13:35 <DIR> . 2025-04-26 13:35 <DIR> .. 2025-04-26 13:29 0 New Text Document (2).txt 2025-04-26 13:29 0 New Text Document.txt 2 File(s) 0 bytes 2 Dir(s) 362 074 849 280 bytes free

?

N.b. att man kan skriva xcopy /? för att få alla växlar o dyl listade.

Tillägg: Du får lägga på /s eller /e per listan på växlar om du ska få med undermappar och texfiler i dem.

Permalänk
Medlem
Skrivet av ztenlund:

Men du tar väl inte höjd för kriteriet att "c:\1 har underkataloger men allt ska hamna i c:\2"?
*edit* såg att du lagt in parametrar som bör fixa det nu

Visa signatur

A modest man is usually admired, if people ever hear of him.

Permalänk
Medlem
Skrivet av Roger W:

Men du tar väl inte höjd för kriteriet att "c:\1 har underkataloger men allt ska hamna i c:\2"?

Kom på det. Tillägg anger iaf om strukturen ska vara kvar. Lite osäker på rak arm om man kan få allt direkt i 2 om 1 har undermappar.

Permalänk
Arvid Nordqvist-mannen
Skrivet av Dynggrovisen:

Menar du copy "%%f" "!destfile!" >nul

Så fanns detta i "copy" på 90 talet.

Skulle skapa denna *.bat och skrev "edit" tom edit är borta......hjälp.

jag kanske är korkad men ingen har ju påstått att det inte skulle finnas vare sig då eller nu.
for /r "%source%" %%f är ju en loop som går genom alla filer i C:\1 och copy %%f kopierar alla filer till destination

Permalänk
Skrivet av ztenlund:

D:\1>dir Volume in drive D is Data Volume Serial Number is Directory of D:\1 2025-04-26 13:30 <DIR> . 2025-04-26 13:30 <DIR> .. 2025-04-26 13:30 0 New Bitmap Image.bmp 2025-04-26 13:29 0 New Text Document (2).txt 2025-04-26 13:29 0 New Text Document.txt 3 File(s) 0 bytes 2 Dir(s) 362 074 849 280 bytes free D:\1>cd.. D:\>cd 2 D:\2>dir Volume in drive D is Data Volume Serial Number is Directory of D:\2 2025-04-26 13:35 <DIR> . 2025-04-26 13:35 <DIR> .. 0 File(s) 0 bytes 2 Dir(s) 362 074 849 280 bytes free D:\2>xcopy d:\1\*.txt d:\2 D:\1\New Text Document (2).txt D:\1\New Text Document.txt 2 File(s) copied D:\2>dir Volume in drive D is Data Volume Serial Number is Directory of D:\2 2025-04-26 13:35 <DIR> . 2025-04-26 13:35 <DIR> .. 2025-04-26 13:29 0 New Text Document (2).txt 2025-04-26 13:29 0 New Text Document.txt 2 File(s) 0 bytes 2 Dir(s) 362 074 849 280 bytes free

?

N.b. att man kan skriva xcopy /? för att få alla växlar o dyl listade.

Tillägg: Du får lägga på /s eller /e per listan på växlar om du ska få med undermappar och texfiler i dem.

Ahhh det var xcopy ändå. :? Underlättar som feen då min nas krascha och har 5000 + bilder att sortera.
Tack tack.

Har kvar många batfiler som man skrev då det begavs sig. Ska leta, ska t.o.m ha mina gammla config.sys å autoexec.bat någerst.

Då kan vi dra en tävling med mest konv minne, vill minnas jag låg på 620+ med ljud och mus laddat.
:_

Tack.... nu svärmar jag iväg.

Permalänk
Medlem

Robocopy är väl det som rekommenderas nuförtiden?

Permalänk
Medlem

Dessa två tips har spart mig väldigt mycket tid när jag petar i dessa. (Funkar i CMD, powerShell, teminalen i Linux och säker den där man petar i på MAC också vad den nu heter)

- Tab eller pil upp skriver det förra kommandot du skrev. Då slipper du skiva om precis allt du skrev sist. bra om man tänker att man stavat fel eller skrev en massa såna här \ men gjort el och behöver bara ändra på något.

I alla fall i CMD och tänker väl att logiskt nog så bör väl dom andra klara det här.
- Om du undrar hur ett kommando fungerar skriv ? efter det du undrar över då får du förklarande text kring var det komadot gör.

Prova en gång att skriva den du just använde med ett ?
Nu har jag själv inte lekt med PoweShell så där jättemycket men vist är det väl på tiden att man går över dit nu kanske så småningom men ja av vana så öppnar jag också CMD först. Men det snackas väl om att CMD skall överges + Såna här simplare men användbar manöver är nog exakt lika.

Visa signatur

Dualbot, w10, Ubuntu, 2600k

Permalänk
Medlem
Skrivet av Modellören:

Dessa två tips har spart mig väldigt mycket tid när jag petar i dessa. (Funkar i CMD, powerShell, teminalen i Linux och säker den där man petar i på MAC också vad den nu heter)

- Tab eller pil upp skriver det förra kommandot du skrev. Då slipper du skiva om precis allt du skrev sist. bra om man tänker att man stavat fel eller skrev en massa såna här \ men gjort el och behöver bara ändra på något.

I alla fall i CMD och tänker väl att logiskt nog så bör väl dom andra klara det här.
- Om du undrar hur ett kommando fungerar skriv ? efter det du undrar över då får du förklarande text kring var det komadot gör.

Prova en gång att skriva den du just använde med ett ?
Nu har jag själv inte lekt med PoweShell så där jättemycket men vist är det väl på tiden att man går över dit nu kanske så småningom men ja av vana så öppnar jag också CMD först. Men det snackas väl om att CMD skall överges + Såna här simplare men användbar manöver är nog exakt lika.

Pil upp bläddrar iofs bland tidigare inmatningar, men tab? I Powershell autokompletterar det om man har börjat skriva något. Det gör det inte i kommandotolken, men jag har för mig att det går att aktivera. Jag vet att jag pillade med det där för typ 20 år sedan... Som standard i cmd bläddrar tab bland det som finns i mappen där man står.

Permalänk
Hedersmedlem
Skrivet av ztenlund:

Pil upp bläddrar iofs bland tidigare inmatningar, men tab? I Powershell autokompletterar det om man har börjat skriva något. Det gör det inte i kommandotolken, men jag har för mig att det går att aktivera. Jag vet att jag pillade med det där för typ 20 år sedan... Som standard i cmd bläddrar tab bland det som finns i mappen där man står.

Hm, tab är autocomplete för mig i både cmd.exe och kommandoprompt via Windows Terminal. T ex kan jag skriva cd \Us<tab>\se<tab>\De<tab> för att komma till mitt skrivbord. Har svårt att tro att jag gjort något registerhack eller något för att aktivera det.
Att den bläddrar i mappen man står i (om man inte skrivit något) är väl samma sak.

Visa signatur

Asus ROG STRIX B550-F / Ryzen 5800X3D / 48 GB 3200 MHz CL14 / Asus TUF 3080 OC / WD SN850 1 TB, Kingston NV1 2 TB + NAS / Corsair RM650x V3 / Acer XB271HU (1440p165) / LG C1 55"
NAS: 6700K/16GB/Debian+ZFS | Backup (offsite): 9600K/16GB/Debian+ZFS

Permalänk
Medlem
Skrivet av Thomas:

Hm, tab är autocomplete för mig i både cmd.exe och kommandoprompt via Windows Terminal. T ex kan jag skriva cd \Us<tab>\se<tab>\De<tab> för att komma till mitt skrivbord. Har svårt att tro att jag gjort något registerhack eller något för att aktivera det.
Att den bläddrar i mappen man står i (om man inte skrivit något) är väl samma sak.

Ja, du har rätt, det är delaktiverat. Hade för mig att det inte var det alls, vilket jag får för mig var fallet förr*. Du får väl inte nslookup om du kör ns och tab i cmd?

*Det ska dock inte uteslutas att jag minns fel, givet hur länge sedan det är.

Permalänk
Skrivet av Dynggrovisen:

Hjärnsläpp

Exempel, jag vill kopiera alla *.txt från c:\1 till c:\2 .

Och c:\1 har underkataloger men allt ska hamna i c:\2.

xcopy eller , får faen inte ihop det.

Kör du DOS?

Permalänk
Medlem
Skrivet av FattarNiInte:

Kör du DOS?

Jag tror nog mer på att vit text på svart bakgrund = "DOS".