Programmieren, script, batch was ist falsch?
@echo off
echo Welche Datei möchtest du kopieren?
echo 1. TEST.xlsx
echo 2. Microsoft Word-Dokument (neu).docx
set /p auswahl=Bitte gib die Nummer der gewünschten Datei ein:
else if "%auswahl%"==1 (set quelle=H:\TEST\TEST.xlsx)
else if "%auswahl%"==2 (set quelle=H:\TEST\Microsoft Word-Dokument (neu).docx)
else (echo Ungültige Auswahl. Bitte versuche es erneut.exit /b)
set /p ziel=H:\TEST1
copy %quelle% %ziel%
echo Die Datei wurde erfolgreich kopiert.
Fehler meldung: Der Befehl else ist entweder falsch oder wurde nicht gefunden.
3 Antworten
erstmal muss alles, was Leerzeichen und/oder Klammern enthalten könnte innerhalb von "Gänsefüßchen" verwendet werden.
zB.
set "quelle=H:\TEST\Microsoft Word-Dokument (neu).docx"
die Zeile zum setzen des Ziels ist falsch es muss so aussehen:
set "ziel=H:\TEST1"
...und wieder die "Gänsefüßchen im Copy-Befehl
copy "%quelle%" "%ziel%"
bei verketteten if-else anweisungen mus das else in der gleichen Zeile stehen wie die schließende Klammer das vorangehenden Anweisungsblocks (bei zahlenvergleichen keine "Quotes", dafür equ verwenden :
if %NumVar% equ 2 (
echo tue was
) else (echo was anderes)
zu guter letzt, für Menüabfragen verwendet man choice.
@echo off
chcp 65001 >nul &rem Umlaute darstellen
echo Welche Datei möchtest du kopieren?
echo 1. TEST.xlsx
echo 2. Microsoft Word-Dokument (neu).docx
echo X. Abbruch
choice /c 12X
if %ErrorLevel% equ 1 (set "quelle=H:\TEST\TEST.xlsx" &goto :doIt) &rem wegspringen , sonst würden sinnloserweise auch die anderen ifs noch abgearbeitet ...kein muss aber sinnvoll
if %ErrorLevel% equ 2 (set "quelle=H:\TEST\Microsoft Word-Dokument (neu).docx" &goto :doIt)
if %ErrorLevel% equ 3 (
echo und Tschüss...
timeout 3 >nul
exit /b
)
:doIt
set "ziel=H:\TEST1"
copy "%quelle%" "%ziel%"
echo Die Datei wurde erfolgreich kopiert.
pause
Hi, der Fehler ist, dass du kein if im Programm hast.
Versuchs mal hiermit:
if "%auswahl%"==1 (
set quelle=H:\TEST\TEST.xlsx
) else if "%auswahl%"==2 (
set quelle="H:\TEST\Microsoft Word-Dokument (neu).docx"
) else (
echo Ungültige Auswahl. Bitte versuche es erneut.
exit /b
)
Liebe Grüße
das ganze herumgerödel mit else wird jedoch überflüssig wenn man garnnicht erst unzulässige Eingaben zulässt.
mit choice kann der Nutzer nur die vorgegebenen Eingaben tätigen
Es zeigt keine Fehler Meldung raus aber die Datei befindet sich nicht im Ziel Ordner könntest du mir dabei helfen das so umzuschreiben das die datei auch im Ziel Ordner ankommt
Schau Dir dein If/else if an.
Versuche es mal in der Art:
if "%auswahl%"=="1" (
set quelle=H:\TEST\TEST.xlsx
) else if "%auswahl%"=="2" (
set quelle=H:\TEST\"Microsoft Word-Dokument (neu).docx"
) else (
echo Ungültige Auswahl. Bitte versuche es erneut.
exit /b
)
echo Welche Datei möchtest du kopieren?
echo 1. TEST.xlsx
echo 2. Microsoft Word-Dokument (neu).docx
set /p auswahl=Bitte gib die Nummer der gewünschten Datei ein:
if "%auswahl%"=="1" (
set quelle=H:\TEST\TEST.xlsx
) else if "%auswahl%"=="2" (
set quelle=H:\TEST\Microsoft Word-Dokument (neu).docx
) else (
echo Ungültige Auswahl. Bitte versuche es erneut.
exit /b
)
set p/ ziel=H:\TEST\Neuer Ordner:
copy "%quelle%" "%ziel%"
echo Die Datei wurde erfolgreich kopiert.
Es zeigt keine Fehler Meldung raus aber die Datei befindet sich nicht im Ziel Ordner könntest du mir dabei helfen das so umzuschreiben das die datei auch im Ziel Ordner ankommt