Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Problem mit Variableinhalt

Frage Entwicklung Batch & Shell

Mitglied: messebe

messebe (Level 1) - Jetzt verbinden

07.12.2009, aktualisiert 08.12.2009, 3567 Aufrufe, 14 Kommentare

MoinMoin,
hier werden Sie geholfen ??
Ich hoffe mal ja

ich habe da ein kleines Problem mit dem ein- und auslesen von Variablen. Wenn ich einer Variablen den Wert
"Dokumente und Einstellungen\username\Eigene Dateien"

zuweise und sie dann mit set anzeigen lassen seht der Wert drin.
Nutze ich sie aber in einer for . . in ... do schleife, dann erhalte ich nur den Wert:

"Einstellungen\username\Eigene"

Der Rest geht verloren.
Wieso, Weshalb Warum, wer nicht fragt bleibt dumm
Mitglied: 60730
07.12.2009 um 16:24 Uhr
möchte, dass du mal set eingibst und dir die Ausgabe des Befehls ansiehst.
Habe irgendwie einen Sperrrigel im Kopf
Ich hoffe, der wink mit dem Zaunpfahl hat den Riegel gelöst.
Bitte warten ..
Mitglied: messebe
07.12.2009 um 16:29 Uhr
Dann steht es richtig drin, die komplette angabe Dokumente und Einstellungen\xxx\eigene Dateien
Bitte warten ..
Mitglied: 60730
07.12.2009 um 16:35 Uhr
Zitat von messebe:
Dann steht es richtig drin, die komplette angabe Dokumente und Einstellungen\xxx\eigene Dateien
na dann...

schreib doch mal, was ist Montags denn so besonderes?
oder welche der 3 bekannten Bätche nimmst du denn?

btw: Wald Bäume Zaunpfahl Groschen schon gefallen?
Offensichtlich nicht.

Wer sich
  • keine Mühe beim Frage stellen
  • mir grußlos an die Euter will
  • es beim ersten Wink mit dem Zaunpfahl immer noch nicht gemerkt hat

dem kann und will ich nicht helfen.

keine Arme - keine Kekse
Bitte warten ..
Mitglied: messebe
07.12.2009 um 16:43 Uhr
Wenn ich set eingebe, dann steht der es richtig drin, das Problem ist das auslesen in einer Schleife.
Der wert steht drin in SOURCEDIR1, der rest läuft dann problem los

FOR %%I in (%SOURCEDIR1%,verz1,verz2,verz3 ) do xcopy %SOURCE%\%%I\*.* %TARGET%\%XX%\%%I\*.* /S/E/Y >> %LOG%
Bitte warten ..
Mitglied: Snowman25
07.12.2009 um 16:44 Uhr
wenn du uns jetzt noch sagen könntest, WIE du SOURCEDIR1 ausliest und was du danach noch so damit anstellst, wären wir dir alle sehr dankbar....
Bitte warten ..
Mitglied: 60730
07.12.2009 um 16:50 Uhr
@Snowman,

der Grußlose ist merkbefreit... und quotation marks kennt er auch nicht...
Bitte warten ..
Mitglied: Snowman25
07.12.2009 um 16:56 Uhr
Zitat von 60730:
@Snowman,

der Grußlose ist merkbefreit... und quotation marks kennt er auch nicht...

scheint leider so...
so langsam finde ich, man sollte die domain 'benutzer.de'-Domain abschaffen... dann würden hier wohl auch weniger sinnbefreite rumrennen

Gruß
Snow
Bitte warten ..
Mitglied: messebe
07.12.2009 um 17:03 Uhr
Dann schafft auch gleich den Administrator.de mit ab
Bitte warten ..
Mitglied: Biber
07.12.2009 um 17:05 Uhr
Moin messebe,

was die beiden Jungs und Mädels dir durch die Blume zu sagen versuchen:
  • Du hast ein Skript-Problem bzw eine Zeile im Skript, die vom CMD-Interpreter anders verstanden wird als du es meinst.
  • der CMD-Interpreter hat uns gegenüber den Vorteil, dass er zumindest diese Zeile samt Kontext nachdenklich betrachten kann - wir können es nicht.
  • Oder, um vielleicht mal die zu einschränkende IT-Brille abzunehmen: Stell dir vor, du betreibst eine kleine Kfz-Werkstatt.
Eines Tages steht ein schwarzer Chevy vor deiner Werkstatttür mit einem Zettel unterm Scheibenwischer:
"Macht manchmal komische Geräusche. Bitte prüfen (erstmal nur Sichtkontrolle und Kostenvoranschlag). Danke im vorraus."

Wie würdest du vorgehen?

Grüße
Biber
Bitte warten ..
Mitglied: 60730
07.12.2009 um 17:16 Uhr
@Biber:

was am 15.09.2006, um 21:28:29 Uhr noch klappte
Zitat von messebe:
Hallo an die Runde,
war am am 26.09.2007, um 17:48:49 Uhr schon vergessen.
und ging am 06.02.2009, um 15:26:05 Uhr genauso weiter wie am 04.04.2009, um 16:14:00 Uhr oder am 23.06.2009.
Nur heute hat jemand (ich) es gewagt das mal anzusprechen.


btw: der schwatte chewie - macht 1024.67 € und hat ein r zuviel am Scheibenwischer....
@messebe:
Überheblich?
oder doch besser stur?
wtf bedeutet denn eigentlich "quotation marks"

Gruß
Bitte warten ..
Mitglied: messebe
07.12.2009 um 17:22 Uhr
Hallo Biber,
nett das DU dich meldest.
So, folgendes Problem, ich möchte mehrere Verzeichnisse sichern, und weil ich ein wenig faul bin, wollte ich das mit einer Schleife machen.
Habe das ganze einmal schon so gelöst :

SET XX=%monat%-%tag%-%jahr%
SET LOG=e:\Protokoll\%XX%-LOG.txt
SET SOURCE=d:\lexware\datenbank
SET TARGET=e:\lexware-Sicherung
FOR %%I in (F0,F1,F2,lxbackup ) do xcopy %SOURCE%\%%I\*.* %TARGET%\%XX%\%%I\*.* /S/E/Y >> %LOG%

Jetzt möchte ich ein paar andere Verzeichnisse sichern, darunter auch das Verzeichnis :
d:\dokumente und einstellungen\xxxxx\eigene Dateien

Also fülle ich die Variable mit :
SET SOURCEDIR1=dokumente und einstellungen\xxxxx\eigene Dateien
SET LOG=c:\%XX%-LOG.txt
SET SOURCE=d:
SET TARGET=%Stick%backup

Das steht dann auch richtig drin, wenn ich es mit Set oder echo %SOURCEDIR1% wieder auslesen.
Wird die For . . Schleife abgearbeitet, dann erhalte ich nur :
einstellungen\xxxxx\eigene und das ist zu wenig
Bitte warten ..
Mitglied: Biber
07.12.2009 um 18:15 Uhr
Moin messebe,

ich will mal so sagen...
Wenn du Leerzeichen in einem Pfad/Dateinamen hast, dann musst du diesen in Anführungszeichen (neudeutsch: quotation marks) setzen.
Oder als Demo am CMD-Prompt (führendes ">" nicht mit eingeben, ist mein Prompt):
01.
>set "Sourcedir1=%appdata%" 
02.
>set "Sourcedir2="%appdata%"" 
03.
>set source 
04.
Sourcedir1=C:\Dokumente und Einstellungen\Biber\Anwendungsdaten 
05.
Sourcedir2="C:\Dokumente und Einstellungen\Biber\Anwendungsdaten" 
06.
 
07.
>for %i in (%sourcedir1%,%sourcedir2%) do @echo [%i] 
08.
[C:\Dokumente] 
09.
[und] 
10.
[Einstellungen\Biber\Anwendungsdaten] 
11.
["C:\Dokumente und Einstellungen\Biber\Anwendungsdaten"]
Wird der Unterschied beim Abarbeiten der FOR-Anweisung durch die CMD.exe für dich deutlich?

Grüße
Biber
Bitte warten ..
Mitglied: messebe
07.12.2009 um 18:49 Uhr
Hallo Biber,
wenn ich das richtig sehe, dann sagst du der Variabel ( Sourcedir2), das der nachfolgende Wert in Hochkammas steht und diese übernommen werden sollen.
Und wenn dann die Schleife abgearbeitet wird,dann wird "SOURCEDIR1 in seine Bestandteile zerlegen,die durch das Leerzeichen getrennt sind. SOURCEDIR2 übernimmt die Leerzeichen aber und stellt den Wert komplett dar.

Ich glaube der Groschen ist gefallen
Bernd
Bitte warten ..
Mitglied: Biber
08.12.2009 um 07:35 Uhr
Moin Messebe,

noch sicherheitshalber ein Nachtrag. Obwohl ich ja eigentlich gar nicht nachtragend bin.

gestern hatte ich ja mit dem kleinen Beispiel am CMD-Prompt demonstriert, wie "Pfade mit Leerzeichen" im Stück, als ein Token, transportiert werden können.

Der Vollständkeit halber - es kann ja sein, dass du diesen token ohne umschließende Anführungszeichen brauchst.
Dann (in dem Beispiel von gestern) statt %i zusätzlich die Tilde verwenden (%~i):
01.
>set "Sourcedir1=%appdata%" 
02.
>set "Sourcedir2="%appdata%"" 
03.
>set source 
04.
Sourcedir1=C:\Dokumente und Einstellungen\Biber\Anwendungsdaten 
05.
Sourcedir2="C:\Dokumente und Einstellungen\Biber\Anwendungsdaten" 
06.
 
07.
>for %i in (%sourcedir1%,%sourcedir2%) do @echo [~%i] 
08.
[C:\Dokumente] 
09.
[und] 
10.
[Einstellungen\Biber\Anwendungsdaten] 
11.
[C:\Dokumente und Einstellungen\Biber\Anwendungsdaten]
im Batch jeweils zwei Prozentzeichen statt einem vor den Laufvariablen (%%i statt %i etc)

Grüße
Biber
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
DSL, VDSL
Problem mit variernder Internetgeschwindigkeit (12)

Frage von schaurian zum Thema DSL, VDSL ...

Windows Netzwerk
gelöst Problem mit PSexec64 von Sysinternals (8)

Frage von MaxMoritz6 zum Thema Windows Netzwerk ...

Windows Server
gelöst Problem nach DC-Installation unter Server 2012 R2 (9)

Frage von manuel1985 zum Thema Windows Server ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (14)

Frage von liquidbase zum Thema Windows Update ...