Er zijn verschillende manieren om bestanden te kopiëren vanuit dezelfde map als het batchbestand zelf. Hier zijn een paar voorbeelden die verschillende scenario's en robuustheid demonstreren:
Methode 1:`%~dp0` gebruiken (het eenvoudigste en meest aanbevolen)
Deze methode gebruikt de variabele `%~dp0`, die zich uitbreidt naar het station en het pad van het huidige batchbestand. Dit is de meest betrouwbare en aanbevolen aanpak.
```partij
@echo uit
kopieer "%~dp0mijnbestand.txt" "%~dp0bestemmingsmap\mijnbestand.txt"
```
* `%~dp0`:Haalt het station en het pad van het batchbestand op.
* `mijnbestand.txt`:het bestand dat u wilt kopiëren. Vervang dit door uw werkelijke bestandsnaam.
* `destinationfolder`:De naam van de map waarnaar u het bestand wilt kopiëren. Maak deze map vooraf aan als deze nog niet bestaat. Indien nodig kunt u hier ook absolute paden gebruiken.
Methode 2:`cd` gebruiken (minder robuust)
Deze methode wijzigt de map naar de locatie van het batchbestand voordat de kopie wordt uitgevoerd. Het is minder robuust omdat het ervan afhankelijk is dat de huidige werkmap correct is ingesteld.
```partij
@echo uit
pushd "%~dp0"
kopieer mijnbestand.txt bestemmingsmap\mijnbestand.txt
popd
```
* `pushd "%~dp0"`:Verandert de map naar de locatie van het batchbestand. `pushd` slaat de huidige map op, zodat u deze later kunt herstellen.
* `popd`:Herstelt de originele map.
Methode 3:omgaan met spaties in bestandspaden (cruciaal voor robuustheid)
Als uw bestandsnamen of mappaden spaties bevatten, *moet* u deze aanhalen. De bovenstaande voorbeelden doen dit al, maar het is de moeite waard om dit te benadrukken. Het niet citeren leidt tot fouten.
Voorbeeld met spaties:
```partij
@echo uit
kopieer "%~dp0Mijn bestand.txt" "%~dp0Bestemmingsmap\Mijn bestand.txt"
```
Methode 4:Meerdere bestanden kopiëren met jokertekens
U kunt jokertekens gebruiken om meerdere bestanden tegelijk te kopiëren:
```partij
@echo uit
kopieer "%~dp0*.txt" "%~dp0bestemmingsmap\"
```
Dit kopieert alle `.txt`-bestanden van de map van het batchbestand naar de `bestemmingsmap`.
Foutafhandeling (belangrijk)
Voor robuustere scripts voegt u foutafhandeling toe om te controleren of het kopiëren is gelukt:
```partij
@echo uit
kopieer "%~dp0mijnbestand.txt" "%~dp0bestemmingsmap\mijnbestand.txt">nul 2>&1
als %ERRORLEVEL% ==0 (
echo Bestand succesvol gekopieerd.
) anders (
echo Fout bij kopiëren van bestand. Foutcode:%ERRORLEVEL%
)
```
* `>nul 2>&1`:Onderdrukt de uitvoer van het `copy`-commando.
* `if %ERRORLEVEL% ==0`:Controleert het foutniveau. `0` betekent succes.
Vergeet niet om `"mijnbestand.txt"`, `"bestemmingsmap"` en andere tijdelijke aanduidingen te vervangen door uw daadwerkelijke bestands- en mapnamen. Test uw batchbestanden altijd grondig. Het onjuist omgaan met spaties in bestandsnamen en paden is een veelvoorkomende bron van fouten. |