Det bästa tillvägagångssättet beror på ditt operativsystem och komfortnivå med kommandoradsverktyg kontra skript. Här är lösningar för olika scenarier:
1. Använda PowerShell (Windows):
Detta är ett kortfattat och effektivt sätt att uppnå detta på Windows -system.
`` `PowerShell
Byt ut med dina faktiska vägar
$ sourceFile ="C:\ Path \ to \ din \ källa \ file.txt"
$ TargetDir ="D:\ Path \ To \ Your \ Target \ Directory"
Get -childitem -directory -path $ TargetDir -Recurse | Foreach-object {
Copy -item -Path $ sourceFile -Destination $ _. FullName
}
`` `
Det här skriptet gör följande:
* `Get -childitem -directory -path $ måldir -recurse`:detta får alla underkataloger inom målkatalogen rekursivt.
* `Foreach-objekt`:Detta itereras genom varje underkatalog som hittades.
* `Copy -item -path $ sourceFile -Destination $ _. FullName`:Detta kopierar källfilen till den aktuella underkatalogen (` $ _. FullName 'representerar underkatalogens fullständiga sökväg).
2. Använda ett batchskript (Windows):
Detta är ett enklare alternativ till PowerShell, men mindre flexibelt.
`` `Batch
@Cho Off
Set SourceFile ="C:\ Path \ To \ din \ källa \ file.txt"
Ställ in TargetDir ="D:\ Path \ To \ Your \ Target \ Directory"
för /d /r "%TargetDir%" %% a i (*) do (
kopiera "%sourceFile%" "%% a"
)
`` `
Det här skriptet fungerar på samma sätt som PowerShell -skriptet, men använder "For" -slingan för att iterera genom kataloger.
3. Använda `find` och` cp` (linux/macOS):
Detta använder kommandoradsverktyg som är gemensamma för Linux och macOS.
`` `bash
Byt ut med dina faktiska vägar
SourceFile ="/path/to/your/source/file.txt"
TargetDir ="/Path/to/Your/Target/Directory"
Hitta "$ TargetDir" -typ d -exec cp "$ sourceFile" {} \;
`` `
Det här skriptet använder:
* `Hitta" $ TargetDir "-typ d`:Detta hittar alla kataloger (` -typ d`) i målkatalogen.
* `-exec cp" $ sourceFile "{} \;`:Detta kör kommandot `cp` (kopiering) för varje katalog som hittas och ersätter` {} `med katalogvägen.
4. Python-skript (tvärplattform):
Detta tillvägagångssätt är mycket bärbart och erbjuder bra felhantering.
`` `python
importsystem
importbil
Source_File ="/path/to/your/source/file.txt" # Byt ut med din källfilväg
Target_dir ="/path/to/your/mål/katalog" # Byt ut med din målkatalogväg
för rot, _, _ i os.walk (mål_dir):
Destination =OS.Path.Join (Root, OS.Path.Basename (Source_File)))
försök:
shutil.copy2 (source_file, destination) # copy2 bevarar metadata
tryck (f "kopierad {source_file} till {destination}")
Förutom Oserror som E:
tryck (F "Fel Kopiering till {destination}:{E}")
`` `
Det här skriptet använder `OS.WALK 'för att korsa katalogträdet och` shutil.copy2' för att kopiera filen och bevara metadata som tidsstämplar. Det inkluderar också grundläggande felhantering.
innan du kör något av dessa skript:
* Byt ut platshållarvägar: Se till att ersätta platshållarvägarna (`SourceFile` och` TargetDir ') med din faktiska fil och katalogvägar.
* Test i en provkatalog: Det rekommenderas starkt att testa ditt valda skript i en provkatalog innan du kör det på dina viktiga data. Detta hjälper dig att undvika oavsiktlig dataförlust eller oavsiktliga konsekvenser.
Kom ihåg att välja den metod som bäst passar ditt operativsystem och din komfortnivå med olika verktyg. Python -skriptet är i allmänhet den mest robusta och bärbara lösningen. PowerShell är ett bra val för Windows -användare som är bekanta med dess syntax.