therealerebos
Goto Top

If Exists auf Datei in Pfad mit Leerzeichen?

Hallo,

ich habe ein Problem mit einem Batch.

Ich möchte gerne prüfen ob Datei 1 nicht mehr vorhanden ist und wenn dem so ist soll er mir wenn Datei 2 noch existiert in ein bestimmtes Verzeichnis schieben...

Ich scheitere aber schon bei der ersten Abfrage da if exists wohl keine Leerzeichen (nicht mal in Anführungszeichen) akzeptiert...wenn ich ein Test so mache klappt es

@echo off
set ZIEL1="D:\Backup\test.txt"  

If not exist %ZIEL1% (
ECHO existiert nicht
) Else (
ECHO existiert 
)
pause
exit

Er gibt dann Korrekt existiert oder existiert nicht aus..je nachdem ob das File da liegt, oder eben nicht...

Wenn ich das aber mit den "richtigen" Code mache

@echo off
set ZIEL1="D:\Mitarbeiter Daten\Max Mustermann\test.txt"  

If not exist %ZIEL1% (
ECHO existiert nicht
) Else (
ECHO existiert 
)
pause
exit

Kommt immer existiert nicht...auch wenn die Datei da liegt...

Wie bekomme ich das zum laufen ohne hier ein neues Verzeichniss mit Mitarbeiter_Dateien\Max_Mustermann\ anlegen zu müssen?!? Weil das kann ja nicht Sinn und Zweck sein...

Gruß


Erebos

Content-ID: 354810

Url: https://administrator.de/forum/if-exists-auf-datei-in-pfad-mit-leerzeichen-354810.html

Ausgedruckt am: 18.04.2025 um 05:04 Uhr

MrCount
MrCount 14.11.2017 aktualisiert um 16:08:17 Uhr
Goto Top
Servus,

also bei mir klappt dein 2. Code...

2017-11-14 16_06_58-fotos


@echo off
set ZIEL1="A:\Mitarbeiter Daten\Max Mustermann\test.txt"  

If not exist %ZIEL1% (
ECHO existiert nicht
) Else (
ECHO existiert 
ECHO %ZIEL1%
)
pause
exit
TheRealErebos
TheRealErebos 14.11.2017 aktualisiert um 18:05:35 Uhr
Goto Top
Okay dann liegt es am Namen der ist nicht Max Mustermann...sondern hat ein Sonderzeichen nämlich ein "ä"

Weil stimmt habe eben mal das mit Max Mustermann auch gemacht (hatte vorher nur den Namen geändert aus Datenschutzgründen) und da hast du recht dann klappt es...es liegt also an dem Sonderzeichen "ä" in dem "richtigen" Namen...

Sorry mein Fehler daran hatte ich nicht gedacht...

Gruß

Erebos
BassFishFox
BassFishFox 14.11.2017 um 19:59:40 Uhr
Goto Top
Hallo,

Du hast das typische Konsolen-Umlautproblem. face-smile

Ergaenze mal an den Anfang Deiner Batch ein :
chcp 1252
und teste die nochmal.

Lies Dich mal hier schlau.
http://www.pctipp.ch/tipps-tricks/kummerkasten/windows-7/artikel/window ...

BFF
TheRealErebos
TheRealErebos 16.11.2017 um 16:37:11 Uhr
Goto Top
Danke jetzt klappt schon mal das es läuft, aber er bringt mir noch immer ein existiert nicht, obwohl die Datei da liegt?!?

An was kann es jetzt noch liegen? Auch wenn ich per ECHO das %ZIEL1% ausgebe hat er da einen Umlautfehler im CMD Fenster, aber das Stand ja da bei PCtipp das dies so wäre und egal ist..kann es sein das exist nicht funktioniert mit Umlauten?

Weil dann könnte ich ja die Datei kopieren in ein Verzeichniss ohne Umlaute, dann exist prüfen und dann sollte es klappen...etwas Umweg...aber wäre ein Workaround der Funktionieren sollte...

Gruß

Erebos
MrCount
MrCount 16.11.2017 um 16:45:54 Uhr
Goto Top
Also auch das geht bei mir...

2017-11-16 16_44_35-rechner

@echo off
chcp 1252
set ZIEL1="A:\Mitarbeiter Daten\Mäx Mustermann\test.txt"  

If not exist %ZIEL1% (
ECHO existiert nicht
) Else (
ECHO existiert 
ECHO %ZIEL1%
)
pause
exit
BassFishFox
BassFishFox 16.11.2017 um 17:10:29 Uhr
Goto Top
Hallo,

Der Script geht auch bei mir. Unabhaengig om nit Umlaut oder ohne.

Oeffne die CMD und mache mal ein
dir "D:\Mitarbeiter Daten\Max Mustermann\test.txt"   
Erscheint dort die Datei? So wie bei (1)?

2017-11-16 11_06_31-command prompt

Weil wenn nicht (2), ist die versteckt und Dein Explorer zeigt halt versteckte Dateien an.

BFF