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

Batchdatei IF und set für Datei einlesen nicht in einer Zeile kombinierbar?

Frage Entwicklung Batch & Shell

Mitglied: bufferm44

bufferm44 (Level 1) - Jetzt verbinden

29.09.2006, aktualisiert 02.10.2006, 4145 Aufrufe, 5 Kommentare

Hallo zusammen!
Habe dieses Forum in den letzten Wochen viel genutzt um div. Batchdateien zu erstellen. Auf eine Frage konnte ich leider keine Lösung finden:

Ich habe gestern Stunden über einem Problem gebrütet, für das ich nur eine Schmutzlösung gefunden habe:

if exist d:\aktuell\split5.txt set /p aktstrasse=<d:\aktuell\split5.txt

Diese Zeile will einfach nicht funktionieren, bei der Ausführung wird immer eine NULL oder eine EINS irgendwo eingefügt.

Nur eine Schmutzlösung à la:

if exist d:\aktuell\split5.txt goto :aaa
goto :bbb
:aaa
set /p aktstrasse=<d:\aktuell\split5.txt
:bbb

funktionierte.

Ist bei der Syntax oben was falsch?

41cf67d46f8cff139b2870814596a78a-null - Klicke auf das Bild, um es zu vergrößern
Mitglied: Biber
29.09.2006 um 13:04 Uhr
Moin bufferm44,

nö, ist alles in Ordnung und richtig so.

Diese "Anzeige"
if exist bla.txt set /p aktstrasse= 0<bla.txt

braucht Dich nicht zu beunruhigen. Das ist nur die Übersetzung des CMD-Interpreters, der messerscharf folgert: Aha, diese Zeile soll den Input an Device 0 (=STDIN) aus einer Datei holen.
Statt über STDIN=Tastatur.

Die gleiche Anzeige bekommst Du, wenn Du in einer Batchdatei stehen hast:
echo bla blubb>nul
Wenn dieser Befehl angezeigt wird (also mal kein "echo off" davor schreiben), dann wird angezeigt:
01.
>echo bla blubb 1>nul
Hier ist die Umleitung des Outputs Voreinstellung Device 1 = STDOUT = normalerweise Bildschirm.
Und "1" wird jetzt umgeleitet auf das NUL-Device.

Funktionieren wird die Set-Anweisung trotzdem.
Na ja, "trotzdem" stimmt ja eigentlich nicht... sie funktioniert eben.

Gruß
Biber
Bitte warten ..
Mitglied: bufferm44
29.09.2006 um 17:22 Uhr
Hm, Du hast Recht, habs noch mal getestet...

Aber warum das bei mir erst nicht ging - keine Ahnung, werds noch mal im Code hübsch machen und beobachten

Danke erstmal!
Bitte warten ..
Mitglied: Biber
29.09.2006 um 17:59 Uhr
Jepp.
Obwohl ich vom Kochen mehr verstehe als vom Bätchen.
Schreib Dir einen Dreizeiler:
01.
::----snipp setFromFileTest.bat 
02.
@echo der neue Wert der Variablen [aus Datei gelesen] >"\%temp%\VarInFile.txt" 
03.
@if exist "%temp%\VarInFile.txt" set /p varAusDateigelesen=<"%temp%\VarInFile.txt" 
04.
set varAusDateigelesen
Das wäre der Output:
01.
Y:\Eigene Dateien>set varAusDateigelesen 
02.
varAusDateigelesen=der neue Wert der Variablen [aus Datei gelesen]
Und wenn Du in der zweiten Zeile das "@" wegnimmst, steht dort auch (sinngemäß):
<code>
Y:\Eigene Dateien>if exist "C:\DOKUME~1\Biber\LOKALE~1\Temp\VarInFile.txt" set /p varAusDateigelesen= 0<"C:\DOKUME~1\Biber\LOKALE~1\Temp\VarInFile.txt"
<code>

Auf jeden Fall aber die "Übersetzung" von "set varname<=file" in "set varname= 0<file"

Warum sollte es auch nicht klappen? Mir erscheint meine Herleitung einleuchtend...

Gruß
Biber
[Edit] Uuups, das sollte eine Antwort auf Deinen vorletzten Kommentar sein,
wo eben noch die Frage stand, ob ich mir sicher wäre...
- den letzten hab ich übersehen, bzw jetzt steht ein anderer Inhalt da...
Egal, jetzt hab ichs gepostet...
Schönes Wochenende. F.
[/Edit]
Bitte warten ..
Mitglied: bufferm44
01.10.2006 um 22:29 Uhr
Sorry dass ich Dir den Kommentar während Deiner Antwort weggezogen habe :D

Ich hatte halt mehrere Stunden getestet und irgendwann als ich diese Schmutzlösung gebastelt hatte, ging das Ganze. Vielleicht war ich einfach etwas überarbeitet
Bitte warten ..
Mitglied: Biber
02.10.2006 um 08:06 Uhr
Na ja, bufferm44,

trotzdem schön, dass wir darüber gesprochen haben...

Ich setze den Beitrag mal auf "Gelöst" und "Geschlossen".
Auch wenn zur eigentlichen Problemlösung wahrscheinlich das letzte Wochenende mehr beigetragen hat als ich...

Gruß
Biber
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Installation
gelöst Mit Powershell in einer Datei eine Zeile auslesen (6)

Frage von Bommi1961 zum Thema Installation ...

Batch & Shell
gelöst In Html-Datei per Batchdatei das Datum und die Uhrzeit eintragen (2)

Frage von Hakiegold zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

DSL, VDSL
DSL-Signal bewerten (12)

Frage von SarekHL zum Thema DSL, VDSL ...

Windows Server
Mailserver auf Windows Server 2012 (8)

Frage von StefanT81 zum Thema Windows Server ...

Backup
Clients als Server missbrauchen? (8)

Frage von 1410640014 zum Thema Backup ...