Batch-Datei zum auslesen eines Speicherpfades aus einer Textdatei
Hallo,
ich bin neu hier und benötige eure Hilfe.
Ich programmiere sonst hauptsächlich in Python.
Ich speichere einige Dateipfade in einer Textdatei, der Aufbau ist dabei wie folgt:
Pfad A = C:\\
Pfad B = C:\\
Und so weiter.
Nun habe ich einige simple Batch-Dateien geschrieben, die Python-Skripte ausführen und dazu einen der interlegten Speicherpfade benötigen (Bspw. C:\User\Desktop\test.py).
Ich brauche nun also innerhalb dieser Batch-Dateien etwas Programmcode, welcher beispielsweise in die Textdatei schaut und nach Pfad A sucht, dann den Dateipfad hinter dem = kopiert und an passender Stelle einfügt (vor test.py).
Könnt ihr mir helfen?
ich bin neu hier und benötige eure Hilfe.
Ich programmiere sonst hauptsächlich in Python.
Ich speichere einige Dateipfade in einer Textdatei, der Aufbau ist dabei wie folgt:
Pfad A = C:\\
Pfad B = C:\\
Und so weiter.
Nun habe ich einige simple Batch-Dateien geschrieben, die Python-Skripte ausführen und dazu einen der interlegten Speicherpfade benötigen (Bspw. C:\User\Desktop\test.py).
Ich brauche nun also innerhalb dieser Batch-Dateien etwas Programmcode, welcher beispielsweise in die Textdatei schaut und nach Pfad A sucht, dann den Dateipfad hinter dem = kopiert und an passender Stelle einfügt (vor test.py).
Könnt ihr mir helfen?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 370976
Url: https://administrator.de/forum/batch-datei-zum-auslesen-eines-speicherpfades-aus-einer-textdatei-370976.html
Ausgedruckt am: 07.04.2025 um 07:04 Uhr
12 Kommentare
Neuester Kommentar
Wenn man Spaß am RegEx hat, kann man es immer damit Lösen
- aber hier anderer Vorschlag: Die "Pfaddatenbank" als ein Hashtable in die cmd (bzw. PowerShell) reinladen:
Wenn du die Textdatei sowieso selber erstelltst, dann kannst du Sie in einem Format erstellen, das die PowerShell (alles was cmd kann, kann auch PowerShell, also nimm gleich die) als ein Hashtable einlesen kann:
Inhalt: Pfade.txt
Nun kannst du in der Befehls.ps1 Datei diese reinladen mit:
Nun haste du eine schöne Hashtable mit Key - Value paaren:
Diese kannst du in der Befehl.ps1 ansprechen:
--> C:\bli\bla\blub\test.py
PS: Invoke-Expression ist eine Krasse sicherheitslücke in diesem Code, da er einfach alles ausführt was in der .txt steht
Also nicht achtlos verwenden
Wenn du die Textdatei sowieso selber erstelltst, dann kannst du Sie in einem Format erstellen, das die PowerShell (alles was cmd kann, kann auch PowerShell, also nimm gleich die) als ein Hashtable einlesen kann:
Inhalt: Pfade.txt
@{
PfadA = "C:\bli\bla\blub\"
PfadB = "D:\hier\ist\auch\was\"
}
Nun kannst du in der Befehls.ps1 Datei diese reinladen mit:
$Pfadliste = Invoke-Expression (Get-Content Pfade.txt | Out-String)
Nun haste du eine schöne Hashtable mit Key - Value paaren:
Name Value
---- -----
PfadB D:\hier\ist\auch\was\
PfadA C:\bli\bla\blub\
Diese kannst du in der Befehl.ps1 ansprechen:
$Pfadliste.PfadA + "test.py"
PS: Invoke-Expression ist eine Krasse sicherheitslücke in diesem Code, da er einfach alles ausführt was in der .txt steht
Zuerst die Skriptausführung in Powershell aktivieren:
Dazu die PowerShell Konsole einmal mit Administratorrechten ausführen, und das Kommando
ausführen.
Nun kannst du auf die .ps1 Datei rechtklicken und im Kontextmenü "Mit PowerShell ausführen" auswählen.
Dazu die PowerShell Konsole einmal mit Administratorrechten ausführen, und das Kommando
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Nun kannst du auf die .ps1 Datei rechtklicken und im Kontextmenü "Mit PowerShell ausführen" auswählen.
Hallo,
ohne Hick-Hack mit execution policies in plain old Batch Script:
In Zeile 12 kannst Du Deinen Code zum Starten der Python Scripte einfügen.
Grüße
Friemler
[EDIT]
Die Datei mit den Pfaden muss dann natürlich das Format einer klassischen Ini-Datei haben:
[/EDIT]
ohne Hick-Hack mit execution policies in plain old Batch Script:
@echo off & setlocal
set "IniFile=.\Pfade.ini"
set "Key=PfadA"
set "Value="
for /f "tokens=1* delims==" %%a in ('findstr /ib /c:"%Key%" "%IniFile%" 2^>NUL') do (
set "Value=%%b"
)
if defined Value (
echo %Value%
)
In Zeile 12 kannst Du Deinen Code zum Starten der Python Scripte einfügen.
Grüße
Friemler
[EDIT]
Die Datei mit den Pfaden muss dann natürlich das Format einer klassischen Ini-Datei haben:
PfadA=C:\...
PfadB=D:\...