markinos
Goto Top

Temp.tmp nicht zu finden

Ich habe mir vor längerer Zeit mit einem Freund ein bat Script gebastelt. Nach dem Wechsel des Rechners (System: Windows 10 Pro vorher und jetzt) funktioniert es nicht mehr. Die Pfade stimmen.

Funktion:
Was macht das Script: es durchsucht eine json und ersetzt einfach ein paar immer wieder vorkommende Stellen.

Problem:
Es kommt der Fehler "Das System kann die angegebene Datei nicht finden". Dies muß die Temp.tmp sein in die Übergangsweise der neue Inhalt der Product.json geschrieben wird.

@echo off & setlocal enabledelayedexpansion
set "Datei=D:\wechsel\products.json"   
set "t=D:\wechsel\Temp.tmp"   

for /f "Tokens=1-4 usebackq Skip=1 Delims=;" %%a in ("D:\wechsel\Datei.CSV") do (  
for /f "delims=" %%i in ('findstr /n $ "%Datei%"') do (  
  set "Line=%%i"      
set Suchen1=%%a
    set Ersetzen1=%%b
    set Suchen2=%%c
    set Ersetzen2=%%d
    call :ProcessLine
    )
move "%t%" "D:\wechsel\product.json"  
echo } >> D:\wechsel\product.json"  
CD /D "C:\Program Files\7-Zip"  
7z.exe a D:\wechsel\%%b.zip "D:\wechsel\product.json"  
setlocal enabledelayedexpansion
)
:ProcessLine
for /f "tokens=1* delims=:" %%a in ("%Line%") do set "L=%%b"  
if not defined L >>"%t%" echo\& goto :eof  
set WriteLine1=!L:%Suchen1%=%Ersetzen1%!
set WriteLine2=!WriteLine1:%Suchen2%=%Ersetzen2%!
>>"%t%" echo !WriteLine2!  
goto :eof
:WEITER_IM_BATCH
Exit

Kann mir jemand auf anhieb sagen wo das Problem liegen könnte oder wieso es auf einem Rechner läuft und auf dem anderen nicht???

Content-ID: 665360

Url: https://administrator.de/forum/temp-tmp-nicht-zu-finden-665360.html

Ausgedruckt am: 04.04.2025 um 10:04 Uhr

em-pie
em-pie 03.04.2021 um 10:52:20 Uhr
Goto Top
Moin,

Kann mir jemand auf anhieb sagen wo das Problem liegen könnte oder wieso es auf einem Rechner läuft und auf dem anderen nicht???
Ich tippe mal darauf, dass auf dem einen Rechner ein Laufwerk D:\ gibt und auf dem anderen nicht!?

Es müssen wenigstens die Datenpfade existieren - sonst "knallt" es.

Gruß
em-pie
markinos
markinos 03.04.2021 um 11:24:03 Uhr
Goto Top
Daran liegt es nicht. D: gibt es auf beiden Rechner und der Pfad ist genau der gleiche. Die gepackten Dateien werden ja auch in de Ordner erstellt und in den gepackten Dateien liegt auch die product.json nur eben nur mit dem Inhalt } aus der Zeile: echo } >> D:\wechsel\product.json"
em-pie
em-pie 03.04.2021 um 11:28:20 Uhr
Goto Top
Dann mach oben aus dem @echo off ein @echo on und schaue, an welcher Stelle es genau hakt. Danach geht es ans Suchen face-smile
117471
117471 03.04.2021 um 12:01:40 Uhr
Goto Top
Hallo,

ACLs?!?

Gruß,
Jörg
markinos
markinos 03.04.2021 um 13:20:46 Uhr
Goto Top
habe ich auch gedacht aber unter den Eigenschaften haben Benutzer, System und Admin einen Vollzugriff auf den Ordner und alle Dateien darin.
mayho33
mayho33 03.04.2021 um 16:39:53 Uhr
Goto Top
Ist den der Punkt "bekannte Datentypen ausblenden" deaktiviert? Andernfalls wird eine Temp.tmp mit einem versteckten .Txt erstellt.
TK1987
TK1987 06.04.2021 um 09:24:11 Uhr
Goto Top
Moin,

da es auf dem anderen Rechner lief, bleibt eigentlich nur irgendein problem mit der ACL. Hast du denn schon mal versucht, den Ordner zu löschen und neu zu erstellen? CMD ist gerade in der Fehlerbehandlung dann auch nicht sehr gesprächig.

Ansonsten stellt sich die Frage, ob es nicht ohnehin sinnvoll wäre, das Ganze mal auf Powershell umzustellen, welches sogar mit JSON- und CSV-Dateien umgehen kann.

Du müsstest uns hierfür nur mal die Spaltenüberschriften deiner Dateien (json & csv) mitteilen.

Gruß Thomas

PS:
Zitat von @mayho33:
Ist den der Punkt "bekannte Datentypen ausblenden" deaktiviert? Andernfalls wird eine Temp.tmp mit einem versteckten .Txt erstellt.
Diese Einstellung betrifft nur den Windows-Explorer und somit auch nur Dateien, die per GUI erstellt wurden. Ist hier also irrelevant.