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-Key: 354810

Url: https://administrator.de/contentid/354810

Printed on: April 16, 2024 at 16:04 o'clock

Member: MrCount
MrCount Nov 14, 2017 updated at 15:08:17 (UTC)
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
Member: TheRealErebos
TheRealErebos Nov 14, 2017 updated at 17:05:35 (UTC)
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
Member: BassFishFox
BassFishFox Nov 14, 2017 at 18:59:40 (UTC)
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
Member: TheRealErebos
TheRealErebos Nov 16, 2017 at 15:37:11 (UTC)
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
Member: MrCount
MrCount Nov 16, 2017 at 15:45:54 (UTC)
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
Member: BassFishFox
BassFishFox Nov 16, 2017 at 16:10:29 (UTC)
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