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

Frage Entwicklung Batch & Shell

GELÖST

Zeilenumbruch und Leerzeichen entfernen

Mitglied: 62436

62436 (Level 1)

06.03.2008, aktualisiert 07.03.2008, 15012 Aufrufe, 5 Kommentare

Schönen guten Abend liebe Forumsmitglieder,

ich habe mich nun extra hier angemeldet, weil leider kein Beitrag meinen Kriterien entsprach oder mir unverständlich war.

Vorweg: Ich bin NICHT mit cmd aufgewachsen, und dennoch kann ich ein wenig damit umgehen. Allerdgings sind mir verschachtelte Codes mit "For %%xy >>=" etwas zu kompliziert. Ich habe ein wenig mit VB gearbeitet und dagegen ist DOS doch ein wenig pragmatischer und weitaus weniger selbsterklärend.

Nun zum Problem:

Ich binde auf einem USB-Stick(!!!) ein TC-Volume ein und zwar immer auf den Buchstaben M!

Es entsteht also ein virtuelles Laufwerk M:\

Ich starte nach dem Mounten eine Datei (PStart.exe) IN diesem Container.

Mit folgendem Code möchte ich den Namen des Verzeichnisses des USB-Sticks auf das Laufwerk M kopieren:

@echo off
set Ordner=%cd%
:Proof
If EXIST M:\ (
start M:\Programme\PStart\PStart.exe
echo %ordner% >M:\Programme\PStart\Ordner.txt
exit
) ELSE (
Goto Proof
)

Das mache ich zu dem Zweck, da ja der Laufwerksbuchstabe des USB-Sticks variieren kann!

Die Textdatei wird brav nach M:\... (usw.) geschrieben, allerdings sieht sie so aus:

Inhalt von Ordner.txt:
"F:\System

"

Es wurde also nach "F:\System" ein Leerzeichen eingefügt und danach noch ein Zeilenumbruch.

Warum macht DOS das? Und wie bekomme ich das ohne die Zeichen hin?

Ich mächte die Textdatei nämlich nachher hiermit auslesen (bitte verbessern, falls es einfacher/besser geht - bspw. habe ich die Funktion von set /p nicht so ganz verstanden - heißt das /p quasi 'anders herum'?):

@echo off
taskkill /t /f /im pstart.exe
Set /p Ordner=<ordner.txt
start %Ordner%\TrueCrypt\TrueCrypt.exe [Parameter] '--> zum Schließen des Volumes!

Bitte, bitte helft mir weiter, und zwar einigermaßen verständlich. Die angesprochenen Themen, die das Entfernen von Zeilenumbrüchen und Leerzeichen behandelten, habe ich nicht verstanden, oder sie haben nicht funktioniert!!!

Danke schon einmal.

Mattes
Mitglied: Biber
06.03.2008 um 07:15 Uhr
Moin mattes1988,

willkommen im Forum.

Vorab zwei Anmerkungen.

Für Codeschnipsel haben für ein Schweinegeld von einem armenischen Händler so genannte Code-Tags für dieses Forum gekauft. Diese können von allen angemeldeten BenutzerInnen ohne weitere Kosten oder Formalitäten mitbenutzt werden. Näheres siehe in den FAQ unter Formatierungen.

Zweitens, wenn Dir ein Beitrag in dem Nebenarm des Forums, in dem ich als Moderator zuständig bin, unverständlich erscheint, dann füge ruhig eine Nachfrage als Kommentar an.
Oder schicke mir eine PN, falls der Beitrag geschlossen ist - dann wird der halt wieder geöffnet.
Gilt sinngemäß auch bei den anderen ModeratorInnen/Forumsbereichen.

Zu Deiner Frage:
01.
@echo off & setlocal 
02.
set "Ordner=%cd%" 
03.
:Proof 
04.
If EXIST M:\ ( 
05.
start M:\Programme\PStart\PStart.exe 
06.
echo %ordner%>M:\Programme\PStart\Ordner.txt 
07.
exit 
08.
) ELSE ( 
09.
Goto Proof 
10.
)
Ich habe 3 kleine Änderungen gemacht.
1. Das " & setlocal" in der ersten Zeile ergänzt, denn Du verwendest in der Folgezeile ein SET.
Das heißt, Du setzt eine Variable, die nur Du bzw nur dieser Schnipsel braucht, also eine "lokale Variable".

2. Einschließende Anführungszeichen hier: Set "ordner=%cd%"
Ist undokumentiert und vielleicht auch nur eine persönliche Marotte von mir, aber damit vermeide ich unabsichtliche Leerzeichen hinter dem Variablenwert.

3. Leerzeichen vor dem ">" /Umleitungssymbol entfernt hier: echo %ordner%>M:\...

Damit sollte dieses trailing blank Geschichte sein.

Der ECHO-Befehl hängt immer und seit immer einen Zeilenumbruch an - kannst Du nicht umgehen. Da aber nicht nur die CMD-Schreib/Ausgabe-Befehle IMMER mit CRLF/zeilenorientiert arbeiten, sondern auch alle Lese/Eingabebefehle wie z.B. das "Set/P var=<datei.xyz" ist das KEIN Problem. Der Zeilenumbruch am Ende einer Zeile sollte bei Batchverarbeitung nie stören.

Probiere bitte nochmal mit meinen Änderungen den Inhalt der erzeugten Datei.

Grüße
Biber
Bitte warten ..
Mitglied: 62436
07.03.2008 um 00:02 Uhr
Hey Biber,

danke für deine ausführliche Beschreibung und die Anpassung des Codes an meine Bedürfnisse!!
Hatte zwar noch einige Schwierigkeiten, beim Wechsel der Verzeichnisse auf dem Stick und auf dem Volume M, aber es ging alles glatt!

Jetzt habe ich folgende Frage, die ein nicht ganz so gravierendes Problem als Ursache hat:

Wenn ich mit dem Befehl:

01.
@echo off & setlocal 
02.
Set /p LW=<LW.txt 
03.
explorer %LW% 
04.
exit
das Laufwerk LW aufrufen möchte, klappt dies wunderbar, allerdings, öffnet sich nach einigen Sekunden (>5) Verzögerung* immer ein leeres DOS-Fenster, welches KEINE Funktion hat (m.E.). Wieso kommt dieses immer hervor? Ich habe ja sogar explizit ein EXIT angegeben. Ich bin ratlos. Genau so verhält es sich, wenn ich das virtuelle Volume mit

01.
@echo off 
02.
explorer M:\ 
03.
exit
öffnen möchte... Komisch.

Danke nochmal,
Mattes

*Die Verzögerung kommt glaube ich durch mein OS (=Vista) zu Stande, und auch immer NUR, wenn irgendwas "schief" läuft. Zum Beispiel hatte ich öfter ne .cmd-Datei, die TrueCrypt.exe aufrufen sollte, es nicht gefunden hat, aber erst nach ca. 5 - 6 Sekunden eine Warnmeldung raus gab.
Bitte warten ..
Mitglied: Biber
07.03.2008 um 09:40 Uhr
Moin mattes1988,

auf die Folgefrage habe ich auch keine spontane Antwort.

Du könntest mal untersuchen, ob denn auch die explorer.exe "gefunden" wird oder da vielleicht noch unabsichtlich eine "explorer.bat" oder "explorer.cmd" dazwischenhängt.
Und schneller sollte es ohnehin gehen, wenn Du den Explorer so aufrufst:
Start "irgendein Titel oder auch keiner" explorer.exe %lw%

Aber, wie geschrieben, eine wirkliche Antwort habe ich nicht, und da außer uns beiden niemand in diesem Beitrag mitliest wäre es am Besten, wir machen hier einen Haken dran und Du stellst die Frage noch mal in einem neuen Thread.

Grüße
Biber
Bitte warten ..
Mitglied: 62436
07.03.2008 um 14:28 Uhr
Wieso liest denn hier keiner mit?

Kannst Du mir eventuell dabei helfen, den zu markieren, bzw. mir sagen, WO ich ihn sonst reinstellen soll?

Lg
Bitte warten ..
Mitglied: Biber
07.03.2008 um 17:00 Uhr
Moin mattes,

kopiere doch Deine Problembeschreibung von heute morgen und mach einen neuen Beitrag mit passender Überschrift auf ("Explorer-Aufruf aus Batchdatei öffnet weiteres CMD-Fenster") oder ähnlich. Kann ja ruhig in "Batch & Shell" stehen.

Von mir aus kannst Du auch in diesemm Beitrag hier warten, aber wer sollte unter der Überschrigt "Zeilenumbriuch entfernen" so ein Problem suchen wollen?

Grüße
Biber
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
Word: Zeilenumbruch bei Textmarke entfernen
Frage von BadgerMicrosoft Office

Hallo, folgende Ausgangslage: In einem Word Dokument sind Textmarken von verschiedenen Excel-Zeilen vorhanden: Das Problem ist, dass automatisch immer ...

Batch & Shell
BAT - Leerzeichen in Variable entfernen
gelöst Frage von hoffi3dBatch & Shell5 Kommentare

Ich mal wieder. Ich lese gerade einige Dateien aus einem Verzeichniss aus und schreibe diese in eine Variable, das ...

Batch & Shell
Leerzeichen aus Dateinamen entfernen
gelöst Frage von noob-xBatch & Shell3 Kommentare

Hallo Profis, ich möchte bei vielen Dateien in einem Ordner die Leerzeichen aus den Dateinamen entfernen Dateien sehen so ...

Batch & Shell
Zeilenumbrüche in mehreren Dateien eines Ordners entfernen
gelöst Frage von TranministratorBatch & Shell2 Kommentare

Hallo liebe Admins, habe folgenden Code welcher ganz gut funktioniert und alle Zeilenumbrüche EINER bestimmten Datei entfernt. Jetzt ist ...

Neue Wissensbeiträge
Microsoft

Letzte Updates für Win10 und Server2016 müssen bei Bedarf über den Update catalogue in den WSUS importiert werden!

Tipp von DerWoWusste vor 1 MinuteMicrosoft

automatisch kommt da nichts an im WSUS und auch nicht im SCCM. Siehe Hinweise zum Bezug der jeweils neuesten ...

Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 2 TagenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 3 TagenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 3 TagenSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Heiß diskutierte Inhalte
Firewall
Penetrationstester-Labor - Firewalls
Frage von Oli-nuxFirewall10 Kommentare

Mich würde interessieren warum man beim Einrichten eines Penetrationstester-Labor (VMs) die Firewall der Systeme deaktivieren soll? Hat das nur ...

SAN, NAS, DAS
Wer kennt sich mit QNAP und CISCO aus ?
gelöst Frage von MachelloSAN, NAS, DAS9 Kommentare

Hallo Zusammen hier im Forum, Ich habe ein QNas 451+ und dieses NAS hat zwei GBit Lan Adapter die ...

Netzwerkgrundlagen
IPv6 Inter-VLAN Routing
gelöst Frage von clSchakNetzwerkgrundlagen9 Kommentare

Hi ich befasse mich gerade mit der Implementierung von IPv6 was bisher (in einem VLAN) korrekt funktioniert inkl. DNS ...

Windows Netzwerk
Zugriff auf den Desktop Ordner eines anderen Rechners in der gleichen Domäne
gelöst Frage von JensNomaWindows Netzwerk6 Kommentare

Guten Abend, ich war neulich mit unserem Admin am Tisch gesessen. Er an seinem Notebook angemeldet mit dem Domänen-Admin, ...