Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Batch - beim Aus- bzw. Einlesen von Pfadangaben aus einer ext. Datei macht der Unterstrich im Pfadnamen Probleme!?

Mitglied: klarname

klarname (Level 1) - Jetzt verbinden

14.08.2011, aktualisiert 15.08.2011, 2695 Aufrufe, 6 Kommentare

alter Newbie, halbwegs fit in PHP, freut sich über Antworten ... und die Qualität dieses Forums hier ...

Ich schreibe ein Batch-Backup-Programm (danke, ich weiß, es gibt robocopy ... aber ich will es selbst lernen), bei der in einer ext. txt-Datei div. Variablen (Email, Zielpfad, zu sichernde Ordner) etc. drin stehen.
Einer dieser zu sichernden Ordner "heißt" (z.B.):
D.\Dokumente und Einstellungen\AsusUpdate_V4512
Bei dem Versuch mit XCOPY werden zwar alle Dateien aus o.g. Pfad/Ordner sauber kopiert, der Ordner selbst aber ("AsusUpdate_V4512") wird jetzt im Zielverzeichnis zu "V4512" verstümmelt. Ich vermute, es liegt am Unterstrich!?
Und das verstehe ich nicht, da ich den Ordner in meinem Batch mit " " als String verarbeite!?
Wo ist mein Denkfehler?

01.
@echo off & setlocal enabledelayedexpansion
02.
rem hier kommen div. Abfragen etc ... die haben mit meinem Problem aber nix zu tun 
03.

04.
rem ab Zeile 32 in der "einstellungen.txt" stehen untereinander,  ohne Anführungszeichen und ohne Backslash am Ende, die zu sichernden Ordner.
05.

06.
for /f "tokens=* delims= skip=32" %%e in (einstellungen.txt) do (
07.

08.
rem %ZIEL% ist ebenfalls in einstellungen.txt festgelegt und wird weiter oben ausgelesen
09.

10.
XCOPY "%%e" "%ZIEL%" /D /E /Y /I /H /R >%temp%\log.log
11.

12.
rem hier kommt dann noch das errolevel-handling usw ... erstaunlicherweise wird hier mit %%e der "richtige" und vollständige Ordner bzw. Pfad ausgegeben
13.
)
Mitglied: bastla
14.08.2011 um 19:22 Uhr
Hallo klarname und willkommen im Forum!

Da der Ordnername ja am Ziel nicht stimmt, wäre es schon relevant, die Zuweisung an die Variable %ZIEL% auch darzustellen (und das am besten mit passender Formatierung) ...
Die Schleife würde ich übrigens eher so schreiben:
for /f "skip=32 delims=" %%e in (einstellungen.txt) do (
und die "xcopy"-Schalter lassen sich auch am Stück angeben:
XCOPY "%%e" "%ZIEL%" /DEYKIHR >%temp%\log.log
Grüße
bastla
Bitte warten ..
Mitglied: Skyemugen
15.08.2011 um 08:16 Uhr
Aloha, ...

Suche nicht unbedingt eine Lösung

... wir dafür aber immer noch eine Begrüßung, einen Gruß und T-Mos oftmals angesprochene Ross & Reiter, die sich, wie bastla bereits genannt hat, in der Ausgabe von z.B. %Ziel% wiederfinden können ...

greetz André

langsam aber sicher müssen die Leute doch einmal lernen, wie man grüßt und dass es eine in rot-dargestellte Formatierungshilfe gibt *grml*

P.S.: Arbeite er wirklich mit D.\Dokumente und Einstellungen\AsusUpdate_V4512? Ich, als Windows-Betriebssystem, würde jetzt einen Ordner D. im aktuellen Verzeichnis suchen - aber ich nehme an, es ist nur ein Typo auf die man aber gerade in Sachen Batch & Co. akribisch achten sollte
P.P.S.: Um das nachvollziehen zu können, habe ich den Kopiervorgang einfach mal nachgestellt und das Resultat: Es wird kein Ordner angelegt, sondern nur die Dateien aus dem Ordner %%e ins %Ziel% kopiert, nur mit %Ziel%\%%~ne wird da bei mir ein Verzeichnis angelegt
Bitte warten ..
Mitglied: klarname
15.08.2011 um 08:52 Uhr
Korrektur:
der Ordner der kopiert werden soll ist
01.
D:\Dokumente und Einstellungen\pbid\Eigene Dateien\AsusUpdt_V71401
und "ankommen" tut in D:\BACKUP ein Ordner "namens"
01.
V7.14.01
Sieht irgendwie wie ne Datumsformatierung aus, oder?

Hast Recht André ... besser so?
Und: Dein "Verdacht" mit D. ist nicht unbegründet; passiert schliesslich oft genug ... trifft aber hier zum Glück nicht zu. War/ist tatsächlich nur ne Typo ...

Die Codezeile
01.
for /f "skip=32 tokens=* delims= " %%e in (einstellungen.txt) do (
in
01.
for /f "skip=32 delims=" %%e in (einstellungen.txt) do (
zu ändern, also auf die (unbegrenzten) *-tokens zu verzichten, führt dazu, dass gar nix mehr kopiert wird!!?
Aber, dass die Schalter auch zusammengefasst werden können,
01.
/DEYKIHR
statt
01.
/D /E /Y /K /I /H /R
war mir neu ... und schon wieder was gelernt!

Aber ansonsten, ja, ohne zu sagen/zeigen, wo und wie ich mein %ZIEL% hole, ist kaum ne Fehlersuche möglich. Sorry!
01.
For /F "tokens=* delims= skip=9" %%a IN (einstellungen.txt) DO echo %%a>>ziel.txt
02.
set /p ZIEL=<ziel.txt
03.
del ziel.txt
und in der einstellungen.txt steht (in Zeile 10) einsam und verzweifelt:
01.
g:\BACKUP
Hab auch schon versucht, die Angabe dort als String (" ") zu hinterlegen und bei XCOPY dann ohne " " zu verarbeiten ... führt aber zum gleichen seltsamen Ergebnis ...
Bitte warten ..
Mitglied: Skyemugen
15.08.2011 um 09:02 Uhr
Aloha,

also wie oben im P.P.S. angemerkt, wird rein mit %Ziel% bei mir gar kein Verzeichnis angelegt, sondern die Dateien ins %Ziel%-Verzeichnis kopiert.
for /f "skip=32 delims=" funktioniert einwandfrei ... und deine Zielsetzung lässt sich auch optimaler setzen ohne überflüssige Datei:
for /f "tokens=1* delims=:" %%s in ('findstr /n "^" "einstellungen.txt"^|findstr /B "10:"') do set "Ziel=%%t"
greetz André

P.S.: Welches OS?

edit: Zielsetzung als Code

P.P.S.: Hm, auch mit der neuen Zahl, tritt dieses Phänomen bei mir (XP x86) nicht auf, allerdings funktioniert bei mir auch bastlas for-Anweisung einwandfrei
Bitte warten ..
Mitglied: klarname
15.08.2011 um 09:12 Uhr
Stimmt! So hatte ich es erwartet und so sollte es sein, dass kein Verzeichnis angelegt wird, sondern alle Dateien aus dem Ursprungsordner D:\Dokumente und Einstellungen\pbid\Eigene Dateien\AsusUpdt_V71401 in den Zielordner G:\BACKUP kopiert werden ... aber: da wird tatsächlich ein Ordner namens V7.14.01 angelegt und darin brav und ordentlich (aber nicht gewollt) die Dateien aus genanntem Ordner reinkopiert.
Ein zweiter Ursprungsordner (D:\Dokumente und Einstellungen\pbid\Cookies) wird dagegen wie gewünscht kopiert, d.h. nur die Dateien aus Cookies ...
Zum OS: WinXP 32
Bitte warten ..
Mitglied: bastla
15.08.2011 um 11:50 Uhr
Hallo klarname!

Vorweg: Ebenfalls unter XP getestet tut bei mir ein
xcopy "D:\Dokumente und Einstellungen\pbid\Eigene Dateien\AsusUpdt_V71401" "G:\Backup" /dehikry
genau, was es soll - daher wäre es sinnvoll, per "echo on" in der ersten Zeile einmal nachzusehen, wie dieser Befehl (mit aufgelösten Variablen) bei Dir aussieht (dazu natürlich den Batch aus der CMD-Shell starten) ...
Zu
auf die (unbegrenzten) *-tokens zu verzichten, führt dazu, dass gar nix mehr kopiert wird!!?
"tokens=*" wird nicht benötigt, wenn durch "delims=" festgelegt wurde, dass keine Zerlegung erfolgen soll (kein Trennzeichen > keine Teile).
Generell würde ich die "einstellungen.txt" (am Beispiel Deiner Zeile 10) eher so aufbauen:
Ziel=G:\Backup
dann kannst Du nämlich vorweg mit einer einfachen Schleife
for /f "delims=" %%i in (einstellungen.txt) do set "%%i"
alle benötigten Werte gleich in Variablen schreiben lassen, wobei es zusätzlich sinnvoll sein könnte, die Variablennamen mit einem einheitlichen Präfix zu versehen, also zB "%Bck_Ziel%" anstelle von "%Ziel%" zu verwenden, da sich diese dann leichter am Stück bearbeiten lassen (um sie zB mit
set Bck_>einstellungen_neu.txt
in eine neue "Einstellungsdatei" zu übertragen).

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Dateinamen mit Batch-Datei ändern - Problem

gelöst Frage von fffffuuuuuuuhhhhBatch & Shell9 Kommentare

Hallo zusammen, ich, stelle regelmäßig .mp3-Dateien her, die folgendermaßen von meinem Audioprogramm beschriftet wird: Das Ergebnis soll aber folgendermaßen ...

Batch & Shell

Bestimmte Datei per Batch in Ordner kopieren, wenn bestimmte .Ext in Ordner vorhanden

Frage von ConcurveBatch & Shell5 Kommentare

Hallo zusammen, aufgrund Speicher-Limitierung in meinem PC muss ich nun meine *.mov, *.avi, etc. vom PC entfernen, so dass ...

Batch & Shell

Per Batch Dateien in einen Ordner - ext. Festplatte übertragen

gelöst Frage von tocksickBatch & Shell2 Kommentare

Hallo zusammen! Zur kurzen Erklärung. Ich habe eine Sammlung von Tools wie Firefox, GoogleChrome, VLC etc die ich in ...

Batch & Shell

BATCH ini Datei Datei auslesen

gelöst Frage von Juergen42Batch & Shell2 Kommentare

Hallo zusammen, ich möchte eine ini Datei auslesen mit folgenden Aufbau INHALT DER INI ID=30 NAME="test1" PFAD="K:\Kontoauszug\Test1\*.pdf" PFAD_S="K:\Kontoauszug\Test1\Sicherung\" ID=28 ...

Neue Wissensbeiträge
Exchange Server

1und1 IONOS: Probleme beim Mailversand mit Exchange

Information von reksierp vor 5 StundenExchange Server3 Kommentare

Hallo, seit Do, 17.1.19 etwa Mittags nimmt 1und1 IONOS keine Mails mehr über den Standard-Port SMTP 25 an. Nachdem ...

LAN, WAN, Wireless

Cisco Mikrotik VPN Standort Vernetzung mit dynamischem Routing

Anleitung von aqui vor 19 StundenLAN, WAN, Wireless

1. Allgemeine Einleitung Das nachfolgende Tutorial ist eine Fortführung der hier bei Administrator.de schon bestehenden VPN Tutorials und beschreibt ...

Windows Mobile

Support für Windows Mobile endet im Dezember 2019

Information von transocean vor 2 TagenWindows Mobile

Moin, Microsoft empfiehlt als Alternative den Umstieg auf iOS oder Android, wie man hier lesen kann. Gruß Uwe

Internet

Kommentar: Bundesregierung erwägt Ausschluss von Huawei im 5G-Netz - Unsere Presse wird immer sensationsgieriger

Information von Frank vor 4 TagenInternet6 Kommentare

Hier mal wieder ein schönes Beispiel für fehlgeleiteten Journalismus und Politik zugleich. Da werden aus Gerüchten plötzlich Fakten, da ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
Temporäre WLAN Verbindung für AD-Login
Frage von Christian.WidauerLAN, WAN, Wireless17 Kommentare

Hallo zusammen, ich weiß leider nicht unter welchem Begriff ich dafür suchen muss, daher habe ich bisher leider nichts ...

LAN, WAN, Wireless
Bekannte Drosselungen bei Providern ?
Frage von HenereLAN, WAN, Wireless15 Kommentare

Servus zusammen, in bereits angefangen, aber ich hoffe dass der Beitrag hier mehr Informationen bringt. Sind Portdrosselungen bzw gezielte ...

Netzwerkmanagement
Reverse Proxy für TCP und UDP Anfragen
gelöst Frage von flxklsNetzwerkmanagement14 Kommentare

Hallo zusammen, ich besitze einen Rootserver, der nur eine öffentliche IP besitzt und auf dem mehrere VMs laufen. Da ...

Windows Server
MSSQL Backup in Form von .sql einspielen
Frage von janosch12Windows Server14 Kommentare

Guten Morgen, wir verwenden das Tool SQLandFTPBackup ( ) zum sichern einiger MSSQL Datenbanken. Nun sichert das Toll die ...