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-Key: 665360

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

Printed on: April 16, 2024 at 11:04 o'clock

Member: em-pie
em-pie Apr 03, 2021 at 08:52:20 (UTC)
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
Member: markinos
markinos Apr 03, 2021 at 09:24:03 (UTC)
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"
Member: em-pie
em-pie Apr 03, 2021 at 09:28:20 (UTC)
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
Mitglied: 117471
117471 Apr 03, 2021 at 10:01:40 (UTC)
Goto Top
Hallo,

ACLs?!?

Gruß,
Jörg
Member: markinos
markinos Apr 03, 2021 at 11:20:46 (UTC)
Goto Top
habe ich auch gedacht aber unter den Eigenschaften haben Benutzer, System und Admin einen Vollzugriff auf den Ordner und alle Dateien darin.
Member: mayho33
mayho33 Apr 03, 2021 at 14:39:53 (UTC)
Goto Top
Ist den der Punkt "bekannte Datentypen ausblenden" deaktiviert? Andernfalls wird eine Temp.tmp mit einem versteckten .Txt erstellt.
Member: TK1987
TK1987 Apr 06, 2021 at 07:24:11 (UTC)
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.