franz-josef-ii
Goto Top

Dos-Box, seltsame(s) Zeichen - Was und woher?

Ich "spiele" mich ja gerade mit dumpedid (Monitorerkennung) herum und habe seit einiger Zeit folgendes Phänomen:

Die erste Zeile der bat Datei wird mit einer Fehlermeldung nicht ausgeführt, der Rest schon. Kopiere ich den Inhalt der Datei in eine neue bat, dann funktioniert dies einige Zeit um dann mit derselben Fehlermeldung abzubrechen. Die Fehleranzeige sind die "drei Winkel". Woher könnten die kommen?

E:\>cd dumpedid

E:\dumpedid>test.bat

E:\dumpedid>´╗┐@echo off
Der Befehl "´╗┐@echo" ist entweder falsch geschrieben oder konnte nicht gefunden werden.  

E:\dumpedid>.\DumpEDID.exe  1>.\daten.csv


Ich rufe dann aus dem Script eine Powershell auf und habe wiederum entweder den Fehler (Die Zeichenfolge "ÔÇ×") oder auch nicht. Habe ich den obigen Fehler, dann kommt auch der untere, läuft das obere Script durch, dann tut das untere dasselbe.

E:\dumpedid>Del temp*.txt
        1 Datei(en) verschoben.
Die Benennung "ÔÇ×" wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei oder eines ausführbaren Programms erkannt. Überprüfen Sie die Schreibweise des Namens, oder ob der Pfad korrekt ist (sofern enthalten), und wiederholen Sie den Vorgang.  
Bei Zeile:1 Zeichen:4
+ ÔÇ× <<<<
    + CategoryInfo          : ObjectNotFound: (ÔÇ×:String) , CommandNotFound
   Exception
    + FullyQualifiedErrorId : CommandNotFoundException

PS E:\dumpedid>



Hier die komplette test.bat:
@echo off
.\DumpEDID.exe > .\daten.csv
powershell.exe .\ps.ps1

findstr /v /b "W" daten.csv > temp1.txt  
findstr /v /b "R" temp1.txt > temp2.txt  
findstr /v /b "P" temp2.txt > temp3.txt  
findstr /v /b "E" temp3.txt > temp4.txt  
findstr /v /b "V" temp4.txt > temp5.txt  
findstr /v /b "H" temp5.txt > temp6.txt  
findstr /v /b "Su" temp6.txt > temp7.txt  
findstr /v /b "Dis" temp7.txt > temp8.txt  
findstr /v /b "ManufacturerID" temp8.txt > temp9.txt  

find ";" temp9.txt > temp10.txt  
findstr /v "TEMP" temp10.txt > daten.csv  
Del temp*.txt

@REM Löschen der Leerzeilen und -zeichen
@echo off &setlocal disabledelayedexpansion
(for /f "tokens=*" %%a in (daten.csv) do (  
   set "line=%%~a"  
   setlocal enabledelayedexpansion
   set "newline=!line: =!"  
   echo(!newline!
   endlocal
))>%ComputerName%.txt

@REM + find the computer domain name
@echo off
 FOR /F "usebackq tokens=*" %%a IN (`wmic.exe COMPUTERSYSTEM GET DOMAIN /Value`) DO (  
	@((ECHO %%a | findstr /i /c:"Domain=") && SET _str=%%a) > NUL 2>&1  
)
FOR /F "tokens=2 delims=^=" %%a IN ("%_str%") do SET COMPUTERDOMAIN=%%a  
SET COMPUTERDOMAIN=%COMPUTERDOMAIN: =%
SET COMPUTERFQDN=%COMPUTERNAME%.%COMPUTERDOMAIN%

@REM FQDN als erste Zeile einfügen

echo host;%COMPUTERFQDN%>b.txt && type %ComputerName%.txt>>b.txt && move /y b.txt %ComputerName%.txt

PowerShell -NoExit -Command „& { Import-CSV .\daten.csv | Export-CliXML .\daten.xml }“

Und die komplette ps.ps1:
$file = '.\daten.csv'    
(gc $file | out-string) -replace '(?ism)\*+\s*^Active\s*:\s?No.*?^\*+','' | set-content $file  
(gc $file | out-string) -replace(":",";") |Set-Content $file  
(gc $file | out-string) -replace '(?ism)\*+\s*^~*\s*',':' | set-content $file  

Content-Key: 315663

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

Ausgedruckt am: 28.03.2024 um 18:03 Uhr

Mitglied: Xerebus
Xerebus 19.09.2016 um 16:08:32 Uhr
Goto Top
Welcher Editor?
Notepad.
Welche Codierung nutzt du beim Speichern?
Mitglied: 77559
Lösung 77559 19.09.2016 um 16:26:54 Uhr
Goto Top
Hi FJII,
sieht mir auch nach einem UTF BOM (=Byte Order Mark) aus.
Schau dir die Datei doch in der PowerShell mit Format-Hex an.
Gruß
LotPings
Mitglied: Franz-Josef-II
Franz-Josef-II 19.09.2016 um 17:05:32 Uhr
Goto Top
Zitat von @Xerebus:
Welcher Editor?

Notepad++

Erstellen und speichern face-wink
Mitglied: Franz-Josef-II
Franz-Josef-II 19.09.2016 aktualisiert um 17:34:59 Uhr
Goto Top
Zitat von @77559:
Schau dir die Datei doch in der PowerShell mit Format-Hex an.


Außer den (anderen) unbekannten Zeichen am Anfang kann ich eigentlich nichts erkennen, geschweige denn interpretieren face-sad


Windows PowerShell
Copyright (C) 2015 Microsoft Corporation. Alle Rechte vorbehalten.

PS C:\Users\xyz> Format-Hex -Path d:\dumpedid\test.bat


           Pfad: D:\dumpedid\test.bat

           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

00000000   EF BB BF 40 65 63 68 6F 20 6F 66 66 0D 0A 2E 5C  @echo off...\
00000010   44 75 6D 70 45 44 49 44 2E 65 78 65 20 3E 20 2E  DumpEDID.exe > .
00000020   5C 64 61 74 65 6E 2E 63 73 76 0D 0A 70 6F 77 65  \daten.csv..powe
00000030   72 73 68 65 6C 6C 2E 65 78 65 20 2E 5C 70 73 2E  rshell.exe .\ps.
00000040   70 73 31 0D 0A 0D 0A 66 69 6E 64 73 74 72 20 2F  ps1....findstr /
00000050   76 20 2F 62 20 22 57 22 20 64 61 74 65 6E 2E 63  v /b "W" daten.c  
00000060   73 76 20 3E 20 74 65 6D 70 31 2E 74 78 74 0D 0A  sv > temp1.txt..
00000070   66 69 6E 64 73 74 72 20 2F 76 20 2F 62 20 22 52  findstr /v /b "R  
00000080   22 20 74 65 6D 70 31 2E 74 78 74 20 3E 20 74 65  " temp1.txt > te  
00000090   6D 70 32 2E 74 78 74 0D 0A 66 69 6E 64 73 74 72  mp2.txt..findstr
000000A0   20 2F 76 20 2F 62 20 22 50 22 20 74 65 6D 70 32   /v /b "P" temp2  
000000B0   2E 74 78 74 20 3E 20 74 65 6D 70 33 2E 74 78 74  .txt > temp3.txt


Edith:
Ok, es wird klarer face-wink
https://de.wikipedia.org/wiki/Byte_Order_Mark

Ursache dürfte klar sein, Lösung muß ich noch suchen - danke

Edith2:
Theoretische Lösung:
Notepad++ -> Kodierung -> UTF-8 ohne BOM
Praktisch kann ich es erst morgen testen.

Danke
Franz
Mitglied: 129813
129813 19.09.2016 aktualisiert um 17:46:06 Uhr
Goto Top
That's clear why it doesn't work you're editing the file in two worlds an ASCII batch world and a powershell unicode world! Why do you mix them, that's horrible ?? You can everything you do in the batch inside powershell as well !
The reason is that you don't specify the Output-Encoding in set-content ( set-content <file> -Encoding Default)
so the file gets Unicode and batch doesn't work well with unicode files if you import them again.

So please do yourself a favor and do everything directly in powershell.

Regards
Mitglied: Franz-Josef-II
Franz-Josef-II 20.09.2016 um 12:12:02 Uhr
Goto Top
Warum? -> Gewachsene Struktur face-wink Ich habe mit der bat angefangen und dann ist es immer mehr geworden. Es hat ja auch über eine Woche funktioniert, das "Problem" war nicht gleich da.

Werma macha
(Werde ich tun)

Mit freundlichen Grüßen
Franz