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

FOR Schleife mit DIR verliert Ausrufezeichen

Frage Entwicklung Batch & Shell

Mitglied: RaidMan

RaidMan (Level 1) - Jetzt verbinden

03.03.2014, aktualisiert 14:48 Uhr, 1859 Aufrufe, 7 Kommentare

Hallo Kenner und Könner,

leider hadere ich immer noch mit den Sonderzeichen in meiner BATCH
Jetzt ist es das " ! " das mir Kopfschmerzem macht, denn es verswindet einfach aus dem String

01.
dir /b "!quella!" 
02.
pause 
03.
FOR /f "delims=" %%a IN ('dir /b "!quella!"') DO ( 
04.
echo 101 %%a 
05.
pause 
06.
set "quelle=%~1%~2\%%a" 
07.
)
die For Schleife gibt ein mit DIR ermittelten Dateinamen, der ein ! enthält schlich ohne aus
Also dir zeigt noch "na! sowas.txt"
echo 101 zeigt nur "na sowas.txt"

ein & an der Stelle wir durchgereicht

wie kann ich ereichen, das auch das ! durchgereicht wird?
Mitglied: colinardo
03.03.2014 um 15:02 Uhr
dann musst du innerhalb deiner Schleife vor dem
echo ein
setlocal disabledelayedexpansion
setzen.
Exkurs zur verzögerten Variablenerweiterung:
http://www.administrator.de/wissen/tutorial-zur-for-schleife-155681.htm ...

Grüße Uwe
Bitte warten ..
Mitglied: RaidMan
03.03.2014, aktualisiert um 17:11 Uhr
Hallo Uwe,

Danke für die Antwort, ich bin wohl zu blond für das Thema

scheinbar ist nur das eine " & " oder das andere " ! " Zeichen zulässig?

So wie ich deinen Vorschlag verstehe ist nur die eine oder andere Variante möglich.

Oder kann man den Code so gestalten, das ! und ? in einem String vorkommen dürfen
bzw eines von beiden Zeichen aber mit den selben Code abzuarbeiten sind ohne das es Probleme im Batch ablauf gibt??
Bitte warten ..
Mitglied: Biber
03.03.2014 um 17:26 Uhr
Moin RaidMan,

ich habe da keine Schwierigkeiten bei enabled delayed expansion (Testfall 1 unten).

C:\Users\Biber>md "Na! hallo & bye" 
 
 
C:\Users\Biber>for /f "delims=" %i in ('dir /b na*') do @echo Inhalt von i:[%i] 
Inhalt von i:[Na! hallo & bye] 
 
C:\Users\Biber>setlocal enabledelayedexpansion & for /f "delims=" %i in ('dir /b na*') do @(set "yy=%i" & echo Inhalt von yy:[ !yy!]) 
Inhalt von yy:[ Na! hallo & bye] 
 
## Problem OHNE delayedExpansion Ich muss die Variabl %xx% in Anführungszeichen setzen: 
 
C:\Users\Biber>set xx 
xx=Na! hallo & bye 
 
...  echo Inhalt von xx:"%xx%" 
Inhalt von xx:"Na! hallo & bye"  
 
##Ohne Anführungszeichen stolpert der Interpreter über das "&"-Zeichen. 
Grüße
Biber
Bitte warten ..
Mitglied: pieh-ejdsch
03.03.2014, aktualisiert um 18:15 Uhr
moin RaidMan,

man(n) könnte fast meinen das Problem ist bekannt
Ich verweise mal auf die Beschreibung #94915 Batch - setlocal EnableDelayedExpansion - ersetzen von Text, der ein Ausrufezeichen enthält

Gruß Phil
Bitte warten ..
Mitglied: bastla
03.03.2014, aktualisiert um 18:55 Uhr
Hallo Biber!

Könntest Du aber natürlich so versuchen:
01.
@echo off & setlocal 
02.
md "Na! hallo & bye" 
03.
 
04.
for /f "delims=" %%i in ('dir /b na*') do ( 
05.
    set "yy=%%i" 
06.
    setlocal enabledelayedexpansion 
07.
    echo Inhalt von yy:[!yy!] 
08.
    endlocal 
09.
)
Der Nebeneffekt, dass ohne Klimmzüge der Inhalt von !yy! nach dem endlocal nicht mehr zur Verfügung steht, ist natürlich klar ...
@ RaidMan
Möchtest Du nicht vielleicht einmal darstellen, was Du eigentlich insgesamt erreichen willst?

Grüße
bastla

[Edit] @ PH: Den Thread hätte ich wohl nicht mehr gefunden ... [/Edit]
Bitte warten ..
Mitglied: RaidMan
04.03.2014, aktualisiert um 13:15 Uhr
Hallo und guten Tag zusammen,

erst einmal vielen Dank für eure Hilfe mein Problem zu lösen
Da ich mich selbst unter Erfolgsdruck gesetzt habe bin ich gerade nicht in der Lage das Thema so richtig theoretisch zu erfassen aber es brennt mir unter den Nägeln einen fehlerfreien Ablauf zu erzielen.

@bastla also die/der batch soll den Inhalt eines Verzeichnisses etwas reorganisieren/Inhalte verschieben ggf Umbennen und eine txt Datei erzeugen die sortierte Infos zum Inhalt enthält. Der Name des Verzeichnis wird als Parameter übergebeben und kann alle Zeichen enthalten die Windows erlaubt.
Später will ich diese "Infodatei" dazu nutzen um sie mit einem Datenbankprogram einzulesen um den Inhalt aller (einige tausend) Verzeichnisse gescheit im Zugriff zu haben.
Bis auf das Problem mit den Steuerzeichen funktioniert es auch.
Besoners fies ist, das es nicht unbedigt eine Fehlermedung gibt wenn ein For, Findstr, Echo >>, ein Zeichen aus einem "String" als Steuerzeichen interpretiert und danach Käse entsteht.
Ich frage mich ob ich nich besser erst die übergebenen %1-%4 auf solche Problem Zeichen prüfe und ggf die Batch abbreche bevor Käse entsteht, allerdings habe ich da auch schone keine Idee wie ich das anstellen könnte, da Prüfen mit Findstr schon mit den Strings Probleme hat ?

Das Hauptproblem scheint ja zu sein das einig oder alle Befehle die übergebenen %Strings% nicht als einen "String" betrachten,
denn Batch eingangs scheint die Welt ja noch in Ordnung egal was %1 %2 %3 %4 enthalten es wird korekt dargestelt mit
echo %1
echo %1
echo "%~1"
echo "%~2"
usw
mein Problem beginnt erst mit dem verarbeiten der Strings
Bitte warten ..
Mitglied: bastla
04.03.2014, aktualisiert um 10:44 Uhr
Hallo RaidMan!

Batch ist natürlich nicht erste Wahl, wenn es um Stringmaniipulationen geht, aber die Sonderzeichenproblematik lässt sich durch konsequentes Verwenden von Anführungszeichen eigentlich ganz gut entschätfen - und wenn die in die Textdatei geschriebenen Informationen für den Import in eine Datenbank gedacht sind, sollte es ja auch kein Problem sein, auch dort Anführungzeichen beizubehalten ...

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Debian
Passwörter in Skripten die mit Dollar-Ausrufezeichen beginnen
gelöst Frage von crackhawkDebian5 Kommentare

Hallo zusammen! Sorry für den Titel, aber $ und ! sind da leider nicht erlaubt. Ich habe ein Problem ...

Batch & Shell
Batch Schleife als FOR-SCHLEIFE
gelöst Frage von mp2711Batch & Shell2 Kommentare

Mit den FOR-Schleifen habe ich mich leider bislang zu selten auseinander gesetzt, aber da ich sonst gerade nicht weiter ...

Microsoft Office
Vereinfachen einer Schleife
Frage von Jens1975Microsoft Office1 Kommentar

Hallo, ich bin neu und versuche mich jetzt mit VBA Ich möchte die Funktion Autofill durch eine Schleife ersetzen. ...

Netzwerkprotokolle
STP und Schleifen
gelöst Frage von ottokarlNetzwerkprotokolle20 Kommentare

Hallo, ich habe eine allgemeine Frage. Situation: Ich nehme ein Kabel und stecke es im Switch z.B. in Port ...

Neue Wissensbeiträge
Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 6 StundenInternet2 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 10 StundenDSL, VDSL1 Kommentar

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Windows 10

Microsoft bestätigt DMA-Policy-Problem in Win10 v1709

Information von DerWoWusste vor 10 StundenWindows 10

Wer sein Gerät mit der DMA-Policy absichert, bekommt evtl. Hardwareprobleme in v1709 von Win10. Warum? Weil v1709 endlich "richtig" ...

Verschlüsselung & Zertifikate

Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows

Information von ticuta1 vor 13 StundenVerschlüsselung & Zertifikate

Interessant Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows SSH-Kommando in CMD.exe und PowerShell

Heiß diskutierte Inhalte
Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement21 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server19 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...

Windows Server
Anmeldung direkt am DC nicht möglich
Frage von ThomasGrWindows Server15 Kommentare

Hallo, ich habe bei unserem Server 2016 Standard ein Problem. Keine Ahnung wie das auf einmal passiert ist. Ich ...