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

Frage Entwicklung Batch & Shell

Mitglied: kl-A

kl-A (Level 1) - Jetzt verbinden

28.03.2007, aktualisiert 15:54 Uhr, 15031 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 ...

Batch & Shell
Pfad mit versteckten Ordner und Leerzeichen
gelöst Frage von dax4funBatch & Shell18 Kommentare

Hallo, attrib s -r -h C:\Dokume~1\All Us~1\Anwendungsdaten\Microsoft\Network\Connections\Pbk set link=C:\Dokume~1\All Us~1\Anwendungsdaten\Microsoft\Network\Connections\Pbk Ich will aus Bsp. D: die rasphone.pbk reinkopieren stehe ...

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 ...

Neue Wissensbeiträge
Apple

IOS 11.2.1 stopft HomeKit-Remote-Lücke

Tipp von BassFishFox vor 4 StundenApple

Das Update für iPhone, iPad und Apple TV soll die Fernsteuerung von Smart-Home-Geräten wieder in vollem Umfang ermöglichen. Apple ...

Windows 10

Windows 10 v1709 EN murkst bei den Regionseinstellungen

Tipp von DerWoWusste vor 9 StundenWindows 10

Dieser kurze Tipp richtet sich an den kleinen Personenkreis, der Win10 v1709 EN-US frisch installiert und dabei die englische ...

Webbrowser

Kein Ton bei Firefox Quantum über RDP

Tipp von Moddry vor 9 StundenWebbrowser

Hallo Kollegen! Hatte das Problem, dass der neue Firefox bei mir auf der Kiste keinen Ton hat, wenn ich ...

Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 21 StundenInternet4 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registrierung von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
Von rj11 auf rj45
Frage von jensgebkenLAN, WAN, Wireless19 Kommentare

Hallo Gemeinschaft, könnt ihr mir vielleicht bei der anfertigung eines Kabels helfen - habe ein rj 11 stecker und ...

Netzwerkmanagement
Firefox Profieles im Roaming
gelöst Frage von Hendrik2586Netzwerkmanagement17 Kommentare

Hallo liebe Leute. :) Ich hab da ein kleines Problem, welches anscheinend nicht unbekannt ist. Wir nutzen hier in ...

LAN, WAN, Wireless
Häufig Probleme beim Anmelden in WLAN
Frage von mabue88LAN, WAN, Wireless15 Kommentare

Hallo zusammen, in einem Netzwerk gibt es relativ häufig (1-2 mal pro Woche) Probleme mit der WLAN-Verbindung. Zunächst mal ...

Windows Server
Remotesteuerung der Sitzung (Kennung XX) fehlgeschlagen
gelöst Frage von Stefan91Windows Server14 Kommentare

Hallo Zusammen, seit kurzem bekomme ich oben genannte Fehlermeldung, wenn ich versuche eine Remotesitzung über den Taskmanager fernzusteuern (Rechtsklick ...