ronny30021
Goto Top

Batch Befehle einlesen

Hallo miteinader

ich möchte in meine batch Datei ein befehl aus einer text Datei einlesehn die text Datei heisst speicher.txt darin steht: Set Name=Hermle_c600U
meine batch Datei soll nunt diese text Datei einlesen und dann automatisch erkennen das die variable %Name%, Hermle_c600u heisst.

vielen dank im vorhinein
LG

Content-Key: 373926

Url: https://administrator.de/contentid/373926

Printed on: April 18, 2024 at 00:04 o'clock

Member: Lochkartenstanzer
Lochkartenstanzer May 15, 2018 at 10:17:08 (UTC)
Goto Top
Klick

lks
Mitglied: 136166
136166 May 15, 2018 updated at 12:21:26 (UTC)
Goto Top
call meineDatei.cmd
Oder
@echo off
for /f "usebackq delims=" %%a in ("c:\datei.txt") do set %%a  
Fucking Batch Bitch, we are in the 2020s, das hört wohl nie auf ....
Member: Lochkartenstanzer
Lochkartenstanzer May 15, 2018 at 10:46:50 (UTC)
Goto Top
Zitat von @136166:

> @echo off
> for /f "usebackq delims=" %%a in ("c:\datei.txt") do %%a  
> 
Fucking Batch Bitch, we are in the 2020s, das hört wohl nie auf ....

Naja, man muß ja nicht gleich die erstbeste Lösung, die einem angeboten wird, nehmen. Man sollte sich schon die Zeit nehmen, mehrere Fundstücke anzuschauen. face-smile

lks
Member: ronny30021
ronny30021 May 15, 2018 at 12:11:47 (UTC)
Goto Top
Tut mir leid aber wiso kommt bei mir ein Syntax Fehler ???
ich bin halt nicht so erfahren auf diesem gebiet
Member: Pedant
Pedant May 15, 2018 updated at 13:05:38 (UTC)
Goto Top
Hallo ronny30021,

Zitat von @ronny30021:
Tut mir leid aber wiso kommt bei mir ein Syntax Fehler ???
Das tut mir auch Leid.
"Ich mach etwas falsch und das führt zu einem Fehler"
Das ist ein bisschen dünn.
Bei welchen Code kommt welche Fehlermeldung?
Wieso ist der Thread auf gelöst gesetzt, wenn es doch so aussieht, als würde es nicht funktionieren?

Zitat von @ronny30021:
...die text Datei heisst speicher.txt darin steht: Set Name=Hermle_c600U
Ist das alles was in der Datei steht, also nur genau diese eine Zeile?

Zitat von @ronny30021:
...und dann automatisch erkennen das die variable %Name%, Hermle_c600u heisst.
Die Variable "Name" heißt "Name", "Hermle_c600u" ist ihr Inhalt (Wert).
(Das nur nebenbei erwähnt.)

Gruß Frank
Member: Lochkartenstanzer
Lochkartenstanzer May 15, 2018 at 13:14:35 (UTC)
Goto Top
Zitat von @ronny30021:

Tut mir leid aber wiso kommt bei mir ein Syntax Fehler ???

Weil Du offensichtlich etwas falsch machst.

ich bin halt nicht so erfahren auf diesem gebiet

Und wir können nicht hellsehen.

lks
Member: ronny30021
ronny30021 May 15, 2018 at 13:32:20 (UTC)
Goto Top
@echo off
Title TOOLPRESETTER V1.00
echo TOOL PRESETTER MADE BY RONNY
echo Bitte Die 8-stellige MDM Nummer Eingeben Und dan ENTER Druecken.

:Start

echo MDM Nr.:
Set /p MDM=

If "%MDM%" == "m" Goto E
If "%MDM%" == "M" Goto E

for /f "usebackq delims=" %%a in ("C:\Users\Mastercam5\Desktop\Toolpreseter\Speicher.txt") do %%a

start /B C:\Users\Mastercam5\Desktop\Toolpreseter\tnccmdplus.exe <"Maschine.txt"

copy J:\Mastercam\MDM_Data\Machines\%Name%\*%MDM%.NC* C:\Users\Mastercam5\Desktop\Toolpreseter

Ren "C:\Users\Mastercam5\Desktop\TOOLPRESETER\*%MDM%.NC" *.Txt

for /f "tokens=4" %%i in ('findstr /rc:"TOOL CALL [0-9]*" "*%MDM%.txt*"') do >>"Daten.txt" echo %%i

for /f "tokens=2" %%i in ('findstr /rc:" [0-9]*" "*Tool_p.tch*"') do >>"DatenP.txt" echo %%i

Powershell -Executionpolicy Bypass -noprofile -Command "compare (gc 'c:\Users\Mastercam5\Desktop\Toolpreseter\Daten.txt') (gc 'c:\Users\Mastercam5\Desktop\Toolpreseter\DatenP.txt') -Passthru | ?{$_.SideIndicator -eq '<='}">Ergebnis.txt

Del %MDM%.txt
Del Daten.txt
Del DatenP.txt
Echo .
Echo .
Echo .
Echo .
Echo .
Echo .
Echo .
Echo .
Echo Folgende Werkzeuge fehlen:
Type Ergebnis.txt
Echo Um zu beenden
Pause
Del Ergebnis.txt
Del ToolP.txt
Del Tool_p.tch

exit


Einstellungen:_________________________________________________________________
:e
echo Einstellungen
echo Bitte Maschine wählen
echo 1 HermleC600U
echo 2 fehlmann P90

set /p Maschine=

if "%maschine%"=="1" goto 1
if "%maschine%"=="2" goto 2

hermle_________________________________________________________________________
:1
echo Connect i 192.168.169.190 >Maschine.txt
echo get TNC:\tool_p.tch >>Maschine.txt
echo Tool_p.tch >>Maschine.txt
echo Exit >>Maschine.txt
echo Set Name=Hermle_c600U >Speicher.txt
goto start


Fehlmann P90___________________________________________________________________
:2
echo Connect i 192.168.169.200 >Maschine.txt
echo get TNC:\tool_p.tch >>Maschine.txt
echo Tool_p.tch >>Maschine.txt
echo Exit >>Maschine.txt
echo Set Name=Fehlmann_p90_hsc >Speicher.txt
goto start


Also das ist mein Programm das ich geschriben habe und folgendes sollte funktionieren tut es aber nicht
ich habe es fett markiert damit es besser sichtabr ist.

in der aufgerufenen speicher.txt steht folgendes:

Set Name=Hermle_C600U

ich freue mich auf eine lösung
vielen dank LG Ronny
Member: Lochkartenstanzer
Lochkartenstanzer May 15, 2018 at 13:44:10 (UTC)
Goto Top
Zitat von @ronny30021:

Also das ist mein Programm das ich geschriben habe und folgendes sollte funktionieren tut es aber nicht

Wenn Du einfach nur irgendetwas aus einem Forum abschreibst, ohne Dir Gedanken darüber zu machen, wird es auch nicht funktionieren. Hast Du meine Kommentar nciht gelesen, daß man sich mehrere der Ergebnisse anschauene sollte umd etwas besseres zu finden?


ich habe es fett markiert damit es besser sichtabr ist.


Du solltest Code-Tags verwenden, damit man Deinen Code beser lesen kann.

in der aufgerufenen speicher.txt steht folgendes:

Set Name=Hermle_C600U

Und warum nimmst Du nicht einfach call statt so etwas kompliziertes wie oben zu machen?

ich freue mich auf eine lösung

Und ich freue mich, wenn die Fragesteller sich auch ein wenig Mühe geben.

lks
Member: Pedant
Pedant May 15, 2018 at 13:51:14 (UTC)
Goto Top
Hallo Ronny,

Zitat von @ronny30021:
echo Bitte Die 8-stellige MDM Nummer Eingeben Und dan ENTER Druecken.
in der vierten Zeile hast Du reichlich Syntaxfehler drin.
Sechs Fehler bei zehn Wörtern sind schon beachtlich.

Abgesehen vom ersetzten Umlaut und der betonenden Großschreibung wäre das Folgende korrekt:
echo Bitte die 8-stellige MDM-Nummer eingeben und dann ENTER druecken.

Zitat von @ronny30021:
for /f "usebackq delims=" %%a in ("C:\Users\Mastercam5\Desktop\Toolpreseter\Speicher.txt") do %%a
Diese Zeile funktioniert.
Die Variable "Name" wird mit "Hermle_c600U" belegt.
Ich vermute, dass der Syntaxfehler in der Datei "speicher.txt" steckt und sie mehr als nur die genannte Zeile enthält.

Gruß Frank