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

Zeile bis Anführungszeichen übernehmen

Frage Entwicklung Batch & Shell

Mitglied: mycroftone

mycroftone (Level 1) - Jetzt verbinden

11.03.2010, aktualisiert 16:34 Uhr, 5644 Aufrufe, 5 Kommentare

Ich möchte eine Zeile in eine Variable übernehmen bis zum ersten "

Testinstall"

bach

Testinstall

for /f "tokens=1 delim="" %%j in (_wis-pak.tmp) do (newest-wis-paket=%%j)

Aber irgendwie will er nicht und bricht mit einem Syntakerror ab.

und nach delim=" hat irgendwie noch niemand gesucht in Googel habe ich es auf jedenfall nicht gefunden.

Das Zeichen " mit ^ Maskieren brachte das selbe Ergebnis.

Kann hier jemand liecht in den Schatten bringen
Mitglied: 76109
11.03.2010 um 15:44 Uhr
Hallo mycroftone!

Eventuell hilft eine Set-Anweisung:
for /f "tokens=1 delim="" %%j in (_wis-pak.tmp) do (SET newest-wis-paket=%%j)

Gruß Dieter
Bitte warten ..
Mitglied: mycroftone
11.03.2010 um 16:09 Uhr
Ja das war natürlich ein Fehler wenn man sich nicht Konzentrieren kann kommt sowas vor.

01.
for /f "tokens=1" delim=^" " %%j in (_wis-pak.tmp) do ( set _newest-wis-paket=%%j)
bracht die Fehlermeldung
"delim" ist syntaktisch an dieser Stelle nicht verarbeitbar.

Das hier

01.
for /f "tokens=1" delim=" " %%j in (_wis-pak.tmp) do ( set _newest-wis-paket=%%j)
brachte die selbe Fehlermeldung
"delim" ist syntaktisch an dieser Stelle nicht verarbeitbar.

Also mit dem Text " habe ich so meine schwierigkeiten weil der Ja teil des Befehles ist.

01.
 findstr ""PROD_WIS" "wis-8.tmp" 
wo ich also den Text "PROD_WIS suche bleibt in der Batchdatei stehen und nachfolgende Befehle werden nicht abgearbeitet.
Nur ein Str C hilft hier


01.
 findstr "^"PROD_WIS" "wis-8.tmp" 

Also entweder ist das nicht das richtig demaskirzeichen oder hier läuft grundsätzlich was falsch.
Bitte warten ..
Mitglied: Biber
11.03.2010 um 16:33 Uhr
Moin mycroftone,

zu dem Thema "Delimiter soll Anführungszeichen sein"....

Soweit ich es probiert habe, ist ein "Delims=Anfüzeichen" in der FOR/F-Anweisung nicht vorgesehen.

Du kannst es aber mit ein, zwei Skript-Zeilen mehr umgehen.
Beispiel-Spielbatch:
01.
::--- Delims-sei-Anführungszeichen-Beispiel 
02.
::Inhalte der Testdatei seinen folgende drei Zeilen 
03.
:: test1 ohne Anführungszeichen 
04.
:: test2 zwei dito 
05.
:: test3 drei "Der dritte" mit Anführungszeichen 
06.
@echo off & SetLocal 
07.
Type e:\schnipsel\mycroft.txt 
08.
FOR /F "delims=" %%i in (e:\schnipsel\mycroft.txt) do set "line=%%i" & call :ShowIt 
09.
goto :eof 
10.
 
11.
 
12.
~~ Raum für Notizen 
13.
 
14.
:ShowIt 
15.
Set "line=%line:"=§%" 
16.
Set "line=%line: §=§%" 
17.
echo LineNachErsetzen [%line%] 
18.
FOR /F "delims=§" %%a in ("%line%") do echo Ausgabe [%%a] 
19.
goto :eof
Ausgabe des Schnipsels:
>e:\schnipsel\mycroft.cmd 
test1 ohne Anführungszeichen 
test2 zwei dito 
test3 drei "Der dritte" mit Anführungszeichen 
 
LineNachErsetzen [test1 ohne Anführungszeichen] 
Ausgabe [test1 ohne Anführungszeichen] 
LineNachErsetzen [test2 zwei dito] 
Ausgabe [test2 zwei dito] 
LineNachErsetzen [test3 drei§Der dritte§ mit Anführungszeichen] 
Ausgabe [test3 drei] 
Die Zeile 16 bewirkt, dass das Leerzeichen vor dem Anführungszeichen auch entsorgt wird.
Wenn du wirklich die Zeile "bis zum Anführungszeichen" brauchst, dann Zeile 16 ausREMen.

Zu deinem zwischenzeitlich geposteten Kommentar: der FindStr-Befehl kennt auch einen Schalter /C für "buchstabengetreuen Vergleich".
Damit kannst du evtl deinen String-in-Anführungszeichen suchen.

Grüße
Biber
Bitte warten ..
Mitglied: bastla
11.03.2010 um 16:33 Uhr
Hallo mycroftone!

Soferne ich das richtig verstehe und es darum geht, den entsprechenden Zeilenanfang aus der ersten Zeile der Datei zu holen, könntest Du es damit versuchen:
01.
@echo off & setlocal 
02.
set S=%temp%\Splt.vbs 
03.
>%S% echo WScript.Echo Split(CreateObject("Scripting.FileSystemObject").OpenTextFile(WScript.Arguments(0)).ReadAll, Chr(34))(0) 
04.
for /f "delims=" %%i in ('cscript //nologo %S% "D:\_wis-pak.tmp"') do set "newest-wis-paket=%%i" 
05.
del %S% 
06.
echo %newest-wis-paket%
Grüße
bastla
Bitte warten ..
Mitglied: mycroftone
11.03.2010 um 16:58 Uhr
Hallo Bastel.

Nein nicht am Anfang ich habe log dateien dort steht z.b.

13.12.2007 "C:\Programme\uninstal\PROD_EPC_1" "PROD_EPC_1" " "C:\uninstal\PROD_EPC_1"
oder
13.12.2007 PM "C:\Programme\uninstal\PROD_EPC_1" "PROD_EPC_1" "
oder
13.12.2007 PM "C:\Program Files\uninstal\PROD_EPC_1" "PROD_EPC_1" "

Und ich brache das PROD_EPC_1
Jetzt habe ich die einzelnen Teile die durch Leerzeichen getrennt sind herausgefilter.


Leider kann ich nicht mit Sicherheit sagen das PROD_EPC_1 immer an 3. Stelle steht. Sonder auch mal an 4. oder 5

Deswegen habe ich alle 3 Teile 3-5 in Pariabeln gepackt und die in textdateien dann.

Um dann zu Prüfen welche die richtige ist.

das findstr "^"PROD_WIS" "wis-4.tmp" zu Prüfen ob ich das "PROD_EPC_1" gefunden habe und nicht das C:\Programme\uninstal\PROD_EPC_1"


Und mit dem for /f "tokens=1 delim="" %%j in (_wis-pak.tmp) do (SET newest-wis-paket=%%j)

wollte ich sicherstellen das ich das PROD_EPC_1 ohne irgendwelche nicht definierbare anzahl von """ hinten dran haben deswegen teile ich das ganze ab am ersten " so meine Idee .

Aber sowohl for /f mit delims als auch findstr haben mit dem " als Text Problem


Das nachmal als Zusatzinfo
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Heiß diskutierte Inhalte
LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (18)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...