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

gelöst Pfade mit Leerzeichen und/oder Sonderzeichen als Variable übergeben

Mitglied: kl-A

kl-A (Level 1) - Jetzt verbinden

28.03.2007, aktualisiert 15:54 Uhr, 15083 Aufrufe, 10 Kommentare

Hallo,
ich möchte in einem Script verschieden Verzeichnisse per robocopy spiegeln.
die verzeichnisse möchte ich per textdatei als variablen übergeben.
mein problem verzeichnisse mit leerzeichen und umlauten werden nicht korrekt als variable übernommen.
beispiel textdatei:

E:\Verzeichnis1
C:\Äbc täÄst
Y:\Öirgednwas xxx


Das Script:

@echo off
set LIST=backup_paths.txt

for /F %%j in (%LIST%) do call :SPIEGELN %%j

goto :ENDE

:SPIEGELN

for /f "delims=\ tokens=1" %%i in ("%1") do set ZIELNAME=%%i
echo.
echo %ZIELNAME%
echo.
pause
REM robocopy "%1" "H:\backup\%ZIELNAME%" /MIR
goto :EOF

:ENDE
exit



Was muss ich ändern? oder geht es einfacher?

gruss kl_A
Mitglied: Biber
28.03.2007 um 15:16 Uhr
Moin, kl_A,

ist schon alles ok so.
Du musst nur beim Lesen der Textdatei auch angeben, dass die komplette Zeile gelesen werden soll.

Streiche: for /F %%j in (%LIST%) do call :SPIEGELN %%j
Setze: for /F "delims=" %%j in (%LIST%) do call :SPIEGELN %%j

Andernfalls wird nur das erste Word/Token in der %LIST%-Datei-Zeile weitergegeben.

Ansonsten finde ich Deinen Schnipsel schön lesbar und pflegbar - so sollten Batche sein.

Gruss
Biber
Bitte warten ..
Mitglied: kl-A
28.03.2007 um 15:23 Uhr
hi, danke f. die schnelle antwort, aber es ändert sich nichts.
ich lasse mir ja mit echo die variablen anzeigen.

ich bekomme wie vorher nur den teil bis im verzeichnis ein leerzeichen kommt und die umlaute werden auch nicht korrekt angezeigt.
z. beispiel beim verzeichnis C:\Äbc täÄst bekomm eich nur -ab zurück.


und noch ein kleiner fehler meinerseits.
es muss richtig heißen for /f "delims=\ tokens=2" %%i in ("%1") do set ZIELNAME=%%i
nicht //token=1

gruss kl_A
Bitte warten ..
Mitglied: bastla
28.03.2007 um 15:23 Uhr
@Biber

Sollten beim "call" nicht auch noch Anführungdzeichen hin, also:
01.
for /F "delims=" %%j in (%LIST%) do call :SPIEGELN "%%j"
Grüße
bastla
Bitte warten ..
Mitglied: kl-A
28.03.2007 um 15:27 Uhr
@Biber

Sollten beim "call" nicht auch
noch Anführungdzeichen hin, also:
01.
for /F "delims=" %%j 
02.
> in (%LIST%) do call :SPIEGELN 
03.
> "%%j" 
04.
> 
Grüße
bastla

hi wenn ich die anführungszeichen setze bekomme ich jetzt den kompletten pfad, aber mit einem anführunsgzeichen hinten dran. und die umlaute gehen auch nicht
Bitte warten ..
Mitglied: bastla
28.03.2007 um 15:38 Uhr
@8018_A

Die Umlaute werden bei passender Codepage funktionieren, also zB mit
01.
chcp 1252
bzw, wenn Du sie in der CMD-Shell eingibst (Stichwort: "edit").
Was den Pfad angeht:
01.
for /f "delims=\ tokens=2" %%i in (%1) do set "ZIELNAME=%%i"
sollte für den Fall genügen, dass Du nur einen Backslash im Pfad hast - ansonsten eher (oder ohnehin besser):
01.
 for /f "delims=\ tokens=1*" %%i in (%1) do set "ZIELNAME=%%j"
oder auch:
01.
set "ZIEL=%~1" 
02.
set "ZIELNAME=%ZIEL:~3%"
Grüße
bastla
Bitte warten ..
Mitglied: kl-A
28.03.2007 um 15:44 Uhr
hi bastla,

jo das isses. jetzt geht's. das mit den pfaden mit mehr als einem \ ist mir auch gerade noch eingefallen.
das mit der codepage versteh ich schon, nur möchte ich nicht das die user die pfasde per shell cmd eingeben, sondern normal als textdatei im editor. shell kann ich denen nicht zumuten.

mit chcp kann ich die codepage angeben.
wenn ich chcp 850 setze werden die umlaute trotzdem nicht dargestellt

gruss
Bitte warten ..
Mitglied: bastla
28.03.2007 um 15:47 Uhr
@ kl_A

wenn ich chcp 850 setze werden die umlaute trotzdem nicht dargestellt
Du brauchst chcp 1252.

Grüße
bastla

[Edit] An editierten Beitrag von kl_A angepasst. [/Edit]
Bitte warten ..
Mitglied: miniversum
28.03.2007 um 15:47 Uhr
So jetzt mal mein bescheidener Vorschlag:
01.
@echo off 
02.
chcp 1252 
03.
set LIST=backup_paths.txt 
04.
 
05.
for /F "delims=" %%j in (%LIST%) do call :SPIEGELN "%%j" 
06.
 
07.
goto :ENDE 
08.
 
09.
:SPIEGELN 
10.
 
11.
for /f "delims=\ tokens=1" %%i in (%1) do set ZIELNAME="%%i" 
12.
echo. 
13.
echo %ZIELNAME% 
14.
echo. 
15.
pause 
16.
REM robocopy %1 "H:\backup"\%ZIELNAME% /MIR 
17.
goto :EOF 
18.
 
19.
:ENDE 
20.
exit
miniversum

EDIT: chcp 1252 vergessen
Bitte warten ..
Mitglied: Biber
28.03.2007 um 15:48 Uhr
Moin kl_A und bastla,

stimmt, da habe ich auch zu flüchtig draufgeschaut, sorry.

Also nochmal im ganzen Satz:

01.
@echo off <b> & setlocal</b> 
02.
set "LIST=backup_paths.txt" 
03.
<b>chcp 1252</b> 
04.
for /F %%j <b>"delims="</b> in (%LIST%) do call :SPIEGELN <b>"%%j"</b> 
05.
 
06.
goto :ENDE 
07.
 
08.
:SPIEGELN 
09.
 
10.
for /f "delims=\ tokens=1*" %%i in <b>("%~1")</b> do set ZIELNAME=%%i 
11.
echo. 
12.
echo <b>Quellname [%~1] Zielname: [%ZIELNAME%]</b> 
13.
echo. 
14.
pause 
15.
REM robocopy <b>"%~1"</b> "H:\backup\%ZIELNAME%" /MIR 
16.
goto :EOF 
17.
 
18.
:ENDE 
19.
exit
Bei der neuen Zeile "chcp 1252" == setze Windows-Codepage musst Du nochmal schauen, ob dass Dein Umlaut-Problem behebt.
Wahrscheinlich ist die %LIST%-Datei mit Notepad erstellt und daher in einer anderen Codepage gespeichert als die Default-CMD-Codepage 850-

Gruss
Biber
[Edit] Zu spät... schon alles von bastla und miniversum eingetütet...
Prima Forum hier... [/Edit]
Bitte warten ..
Mitglied: kl-A
28.03.2007 um 15:54 Uhr
mit codepage 1252 geht es auch nicht. aber vielleicht liegts auch an meinem vista englisch mit deutschen sprachpaket?
wenn ich ne cmd shell aufmache und mir die aktuelle codepage anzeigen lasse, ist das 850

[edit] sorry ich bin zu blöd. geht natürlich. auch mit den umlauten. werden nur bei der ausgabe im cmd fenster anders angezeigt. wenn ich mit mkdir die pfade erstellen lassen passt das alles.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Leerzeichen im Pfad
Frage von JallioBatch & Shell4 Kommentare

Hallo erneut, ich werde hier echt noch zum Stammkunden Wenn ich den Befehl $body in der WindowsPowerShell ISE ausführe, ...

Batch & Shell
BATCH: Leerzeichen im Registry Pfad
gelöst Frage von 118710Batch & Shell1 Kommentar

Hallo zusammen, dies ist mein erste Beitrag hier und ich hoffe ich bin richtig :P So! Erst ein mal ...

Backup
WBadmin und Leerzeichen im UNC-Pfad
gelöst Frage von runasserviceBackup4 Kommentare

Hallo, kann es sein das WBadmin kein Lerzeichen im UNC-Pfad erlaubt? wbadmin.exe start backup -backuptarget: \\BACKUP-PC\EINKAUF\PC MEYER\ -allCritical -quiet ...

Batch & Shell

Leerzeichen wird nicht in Variable geschrieben

gelöst Frage von SaschaaaaaBatch & Shell1 Kommentar

Hallo Leute, Ich habe diese Zeile: Und als Ausgabe dann: "C:\Users\Ich\extrac" anstatt den vollen Pfad aller Dateien in diesem ...

Neue Wissensbeiträge
Windows 10

USB Maus und Tastatur versagen Dienst unter Windows 10

Erfahrungsbericht von hardykopff vor 1 TagWindows 105 Kommentare

Da steht man ziemlich dumm da, wenn der PC sich wegen fehlender USB Tastatur und Maus nicht bedienen lässt. ...

Administrator.de Feedback
Update der Seite: Alles zentriert
Information von Frank vor 1 TagAdministrator.de Feedback18 Kommentare

Hallo User, die größte Änderung von Release 5.8 ist das Zentrieren der Webseite (auf großen Bildschirmen) und ein "Welcome"-Teaser ...

Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 2 TagenHumor (lol)4 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 2 TagenGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Heiß diskutierte Inhalte
Speicherkarten
Vergessliche USB-Sticks?
Frage von hanheikSpeicherkarten14 Kommentare

Ich habe in den letzten Tagen 500 USB-Sticks mit Bilddateien bespielt. Obwohl ich die Dateien mit größter Sorgfalt kopiert ...

Hyper-V
Hyper-V mit altem XEON-Server. Was ist falsch?
Frage von LollipopHyper-V11 Kommentare

Hallo Bin etwas frustriert. Kleinbetrieb, ca. 15 PC's, 2 Stk. Server mit einigen virtuellen PC's für Fernwartung, VaultServer für ...

Windows Server
NTFS Berechtigungen Ordnerstruktur
Frage von hukahu23489Windows Server11 Kommentare

Hallo, ich bin seit kurzem in einer neuen IT-Abteilung und bin über das Berechtigungskonzept des Unternehmens sehr schockiert. Ich ...

Exchange Server
NDR umleiten
Frage von isomasterExchange Server10 Kommentare

Hallo Kollege, ich habe ein Problem mit dem Exchange Server. Wir haben unsere info@ Adresse als Verteilergruppe eingebunden (so ...