Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

FOR Schleifen und CALL Befehl für mich immer noch unverständlich

Frage Entwicklung Batch & Shell

Mitglied: Trecasim

Trecasim (Level 1) - Jetzt verbinden

05.10.2013 um 12:43 Uhr, 1750 Aufrufe, 14 Kommentare, 1 Danke

Hallo zusammen,

leider bin ich mit etlichen Veruchen der Suche immer noch nicht auf vernünftige Hilfe zu FOR Schleifen und der Benutzung von CALL gestoßen.
Soweit ich das verstanden habe, wird bei dem CALL Befehl (z. B.: CALL :TEST) in FOR Schleifen zu einem Programm Code gesprungen, welcher abgearbeite wird als ob man eine externe Batch Datei aufrufen würde und an die vorherige Stell woll CALL aufgerufen wurde zurück springt.
Das man am Ende des eigentlichen Programms ein GOTO :EOF einfügen soll leuchtet mir ein.
Aber woher weis das Script, wann ein Ende des mit CALL aufgerufenen Code erreicht ist.
Muss man nun hier auch ein GOTO :EOF einfügen damit CALL weis wann schluss ist und darf ich in diesem von CALL aufgerufenen Programmteilen dann den GOTO Befehl verwenden ohne die FOR Schleife zu schrotten?
Irgendwo habe ich auch gelesen, dass es beim SET Befehl hierbei auch etwas zu beachten gibt.
Aber leider finde ich den Link nicht mehr.

Aktuell habe ich dieses Problem mit einen Script um DDS Texturen automatisch auf bestimmte größen zu verkleinern.
Jedoch ist das Scipt aktuell nicht annähernd auf einem Stand um hier noch Präsentiert zu werden.

Hier ein Beispiel:
01.
....... FOR ..... CALL :HSIZE 
02.
..... 
03.
..... 
04.
GOTO :EOF 
05.
 
06.
:HSIZE 
07.
SET HSIZE=!choice! 
08.
------ ENDE des Sprung Code ------ 
09.
 
10.
:VRESOLUTION 
11.
set choice= 
12.
set /p choice=V-Resolution:  
13.
for %%C in (256 512 1024 2048) do IF "!choice!" == "%%C" CALL :VSIZE 
14.
ECHO "!choice!" is not valid please try again 
15.
GOTO VRESOLUTION 
16.
------ ENDE des Sprung Code ------ 
17.
 
18.
:VSIZE 
19.
SET VSIZE=!choice! 
20.
SET PIXEL=!HSIZE! !VSIZE! 
21.
------ ENDE des Sprung Code ------ 
22.
 
23.
:AUTOMODE 
24.
ECHO PIXEL !PIXEL! 
25.
ECHO HSIZE !HSIZE! 
26.
ECHO VSIZE !VSIZE! 
27.
IF "!PIXEL!" == "AUTO"	(...... 
28.
------ ENDE des Sprung Code ------
Vielen Dank und liebe Grüße Trecasim
Mitglied: rubberman
05.10.2013 um 13:25 Uhr
Hallo Trecasim, willkommen im Forum.

GOTO :EOF oder EXIT /B beenden nicht nur den Hauptcode, sondern eben auch eine aufgerufene Subroutine. Wenn du das Ende nicht mit einem dieser Befehle spezifizierst, wird nach Batchmanier einfach mit der nächsten Zeile fortgefahren. Natürlich müssen diese Befehle nicht zwingend am Ende der Subroutine erscheinen, sondern dort wo die Bearbeitung abgebrochen werden soll (bspw. am Ende der Zeile 13 in deinem Code mit einem &GOTO :EOF).
GOTO crasht den Aufruf nicht unbedingt. So wie du es in :VRESOLUTION anwendest, ist das in Ordnung (bis auf besagte Zeile 13).

Grüße
rubberman
Bitte warten ..
Mitglied: Trecasim
05.10.2013, aktualisiert um 20:59 Uhr
Hallo Rubberman,

vielen Dank für deine schnelle Antwort.
ok, somit ist alles klar warum in dem Script so gar nix lief, eigentlich ein Wunder, dass die FOR Schleife wenigstens einmal durch lief.
Sa kann ich wohl das Script vollkommen von vorne anfangen und überarbeiten.
Wenn ich es hinbekomme wirds hier wohl auch irgend wann erscheinen.

Schönes Wochenende noch.

EDIT: Nachtrag

Nachdem der rauchende Kopf abgeklungen ist und die Regeln nun klar waren hat es recht gut geklappt.
Zumindest reicht es mir für heute mit FOR schleifen, GOTO und CALL aufrufen.
Wenn jetzt der IrfanView noch machen würde was ich gerne hätt, dann währe ich glücklich.
Aber morgen ist auch noch ein Tag.

Wer jetzt das DDS Textur Resizer script nutzen möchte benötigt nur noch obigen Viewer mit Filter Plugin und zusätzlich die
crunsh.exe welche das eigentliche Textur Tool ist.
Dieses erhällt ihr hier: Crunch Download

Ich hoffe es geht auch auf anderen Systemen als auf meinem (alles schon erlebt ).

01.
REM ------------------------------------------------------------------------ 
02.
@ECHO OFF 
03.
REM --- Settings ----------------------------------------------------------- 
04.
Setlocal EnableDelayedExpansion 
05.
REM ------------------------------------------------------------------------ 
06.
REM --- Delete Source files from RECOMP.CAB on / off ----------------------- 
07.
SET DELSRC=OFF 
08.
REM ------------------------------------------------------------------------ 
09.
REM --- Set DXT Quality [superfast,fast,normal,better,uber] ---------------- 
10.
SET QUALITY=uber 
11.
REM ------------------------------------------------------------------------ 
12.
IF EXIST DATA.CAB ( 
13.
					expand -f:*.* DATA.CAB .\ 
14.
					) else	( 
15.
							ECHO Archive DATA.CAB not found! 
16.
17.
REM ------------------------------------------------------------------------ 
18.
ECHO Resize and compress files... 
19.
FOR /R %%B in (*.dds) do	( 
20.
							SET PIXEL= 
21.
							SET HSIZE= 
22.
							SET VSIZE= 
23.
							SET FILEPATH=%%B 
24.
							SET FILENAME=%%~nxB 
25.
							for /f "tokens=5,6,8* delims=:,x " %%I in	( 
26.
																		'crunch.exe /info -file "%%B"^|findstr "dimensions"' 
27.
																		) do	( 
28.
																				IF NOT "%%K" == "1"	( 
29.
																									SET MAXMIPS=7 
30.
																									SET MIPMODE=Generate  
31.
																									) ELSE ( 
32.
																											SET MAXMIPS=1 
33.
																											SET MIPMODE=none 
34.
35.
																				SET TRUEPIXEL=%%I %%J 
36.
																				SET TRUEMAP=%%K 
37.
38.
                                                        CLS 
39.
                                                        ECHO ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ 
40.
                                                        ECHO ³ Textur Resizer Script for CHRUNCH.EXE by Trecasim    Version 1.00 Beta ³ 
41.
                                                        ECHO ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ 
42.
                                                        ECHO ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» 
43.
                                                        ECHO º Texture Informatons:                                                   º 
44.
                                                        ECHO ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ 
45.
                                                        ECHO º File:    !FILENAME! 
46.
                                                        ECHO º Path:    !FILEPATH! 
47.
                                                        ECHO º Size:    !TRUEPIXEL! 
48.
                                                        ECHO º MipMaps: !TRUEMAP! 
49.
                                                        ECHO ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» 
50.
                                                        ECHO º                                                                        º 
51.
                                                        ECHO ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹ 
52.
                                                        ECHO º Auto Modus Settings:                                                   º 
53.
                                                        ECHO ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ 
54.
                                                        ECHO º Max. Size:    512 Pixel 
55.
                                                        ECHO º Max. Mipmaps: !MAXMIPS! 
56.
                                                        ECHO º MipMode:      !MIPMODE! 
57.
                                                        ECHO ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» 
58.
                                                        ECHO º                                                                        º 
59.
                                                        ECHO ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹ 
60.
                                                        ECHO º Press Enter for Autoresize or Type the new size.                       º 
61.
                                                        ECHO ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ 
62.
                                                        ECHO ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 
63.
							 
64.
							IF EXIST "!ProgramFiles!\IrfanView\i_view32.exe" "!ProgramFiles!\IrfanView\i_view32.exe" !FILEPATH! /hide=15 
65.
							CALL :HORIZONTAL 
66.
							IF "!PIXEL!" == "" CALL :VERTICAL 
67.
							ECHO PIXEL !PIXEL! 
68.
							ECHO HSIZE !HSIZE! 
69.
							ECHO VSIZE !VSIZE! 
70.
							IF NOT "!PIXEL!" == "AUTO" SET PIXEL=/clampscale !PIXEL!!HSIZE! !VSIZE! 
71.
							IF "!PIXEL!" == "AUTO" SET PIXEL= 
72.
							crunch.exe -file "!FILEPATH!" /dxtQuality !QUALITY! /fileformat DDS /forcewrite /outsamedir /maxmips !MAXMIPS! /mipFilter box /mipMode !MIPMODE! !PIXEL! 
73.
74.
REM --- Ende des Haupt Programs -------------------------------------------- 
75.
PAUSE 
76.
GOTO :EOF						 
77.
REM ------------------------------------------------------------------------ 
78.
REM ------------------------------------------------------------------------ 
79.
REM --- Zusatz Programme --------------------------------------------------- 
80.
REM ------------------------------------------------------------------------ 
81.
 
82.
REM ------------------------------------------------------------------------ 
83.
:HORIZONTAL 
84.
SET HSIZE= 
85.
SET choice= 
86.
SET /p choice=H-Resolution:  
87.
IF "!choice!" == ""	( 
88.
					ECHO. 
89.
					ECHO Auto mode started ... 
90.
					IF "!TRUEPIXEL!" == "4096 4096" SET PIXEL=512 512 
91.
					IF "!TRUEPIXEL!" == "4096 2048" SET PIXEL=512 256 
92.
					IF "!TRUEPIXEL!" == "4096 1024" SET PIXEL=512 128 
93.
					IF "!TRUEPIXEL!" == "4096 512" SET PIXEL=1024 128 
94.
					IF "!TRUEPIXEL!" == "4096 256" SET PIXEL=2048 128 
95.
					IF "!TRUEPIXEL!" == "2048 2048" SET PIXEL=512 512 
96.
					IF "!TRUEPIXEL!" == "2048 1024" SET PIXEL=512 256 
97.
					IF "!TRUEPIXEL!" == "2048 512" SET PIXEL=512 128 
98.
					IF "!TRUEPIXEL!" == "2048 256" SET PIXEL=1024 128 
99.
					IF "!TRUEPIXEL!" == "1024 1024" SET PIXEL=512 512 
100.
					IF "!TRUEPIXEL!" == "1024 512" SET PIXEL=512 256 
101.
					IF "!TRUEPIXEL!" == "1024 256" SET PIXEL=512 128 
102.
					IF "!TRUEPIXEL!" == "512 1024" SET PIXEL=256 512 
103.
					IF "!TRUEPIXEL!" == "256 1024" SET PIXEL=128 512 
104.
					IF "!TRUEPIXEL!" == "1024 2048" SET PIXEL=256 512 
105.
					IF "!TRUEPIXEL!" == "512 2048" SET PIXEL=128 512 
106.
					IF "!PIXEL!" == "" ( 
107.
										CALL :AUTOFAIL 
108.
109.
					GOTO :EOF 
110.
111.
IF NOT "!choice!" == "" FOR %%C IN (64 128 256 512 1024 2048) DO IF "!choice!" == "%%C"	SET HSIZE=!choice! 
112.
IF "!HSIZE!" == ""	( 
113.
					ECHO "!choice!" is not valid please try again 
114.
					CALL :HORIZONTAL 
115.
116.
GOTO :EOF	 
117.
REM ------------------------------------------------------------------------ 
118.
:VERTICAL 
119.
SET VSIZE= 
120.
SET choice= 
121.
SET /p choice=V-Resolution:  
122.
IF "!choice!" == ""	( 
123.
					ECHO This is not valid please try again 
124.
					GOTO VERTICAL 
125.
126.
 
127.
IF NOT "!choice!" == "" FOR %%D IN (64 128 256 512 1024 2048) DO IF "!choice!" == "%%D"	SET VSIZE=!choice! 
128.
IF "!VSIZE!" == ""	( 
129.
					ECHO "!choice!" is not valid please try again 
130.
					CALL :VERTICAL 
131.
132.
GOTO :EOF							 
133.
REM ------------------------------------------------------------------------							 
134.
:AUTOFAIL 
135.
ECHO. 
136.
ECHO ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» 
137.
ECHO º Auto mode not avalable for this file                                   º 
138.
ECHO º                                                                        º 
139.
ECHO º Press Enter for auto mode without resizeing                            º 
140.
ECHO º Press N for manual settings                                            º 
141.
ECHO ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ 
142.
ECHO ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 
143.
set choice= 
144.
set /p choice=Choose: 
145.
IF "!choice!" == ""	( 
146.
					SET PIXEL=AUTO 
147.
					GOTO :EOF 
148.
149.
if "!choice!" == "n" GOTO HORIZONTAL 
150.
ECHO "!choice!" is not valid please try again 
151.
GOTO AUTOFAIL
Bitte warten ..
Mitglied: rubberman
05.10.2013, aktualisiert um 22:38 Uhr
Hallo Trecasim,

schön wenn's klappt
Die Art, wie du Code einrückst, macht es zumindest mir ziemlich schwer dir zu folgen. Aber schließlich muss ich ja auch nicht damit klar kommen
Was mir aufgefallen ist:
  • Variablenzuweisungen (bspw. FILEPATH) bei eingeschalteter verzögerter Variablenerweiterung (EnableDelayedExpansion) sind nicht ungefährlich. Hoffentlich hast du nie Ausrufezeichen im Pfad ...
  • so etwas wie IF NOT "!choice!" == "" kannst du auch mit IF DEFINED choice abwickeln.

Grüße
rubberman
Bitte warten ..
Mitglied: Trecasim
06.10.2013, aktualisiert um 11:28 Uhr
Moin Rubberman,

Danke für deine Tips und Warnungen.
Naja Code einrücken, is bei mir so ne Sache. Hat sich bei mir über die Zeit so ergeben. Aber ich kann sagen, wenn der Code im DOS Editor liegt, siehts auch anderes aus als hier im Forum und für mich is es dann voll ok wenn der Code eben mal über 2 oder auch 3 Querseiten rüber geht.
Mir fällts so eben leichter, kann aber sehr gut verstehen wenn anderen das schwer fällt, mir gehts umgekehrt genauso.
So wie es hier angezeigt wird ist es auch für mich schwierig.
Mal sehen, die version ist eh schon veraltet, wenn ich ne neue mal einstelle ändere ich das vermutlich.

Das mit den Ausrufezeichen ist mir auch schon aufgefallen, aber wen ich des ändern möchte, müßte ich ja ständig EnableDelayedExpansion deaktivieren und aktivieren.
Die Sache mit den Ausrufezeichen is mir auch ein wenig suspekt, ich könnt jetzt sagen ich verwende die nicht bei Pfaden oder Dateinemen, aber "Locate" hat doch tatsächlich 75 Objekte mit Ausrufezeichen auf meinen gesammten System in der Datenbank.
Ich habe jetzt am Anfang eine Abfrage reingebaut, für mich erstmal die einfachste Lösung das Problem zu umgehen.

Abfrage für Abbruch wenn Pfad/Datei ein Ausrufezeichen enthält.
01.
@ECHO OFF 
02.
TITLE RESIZER 
03.
Setlocal DisableDelayedExpansion 
04.
IF EXIST "%TEMP%\RESIZER ERROR.LOG" DEL /Q "%TEMP%\RESIZER ERROR.LOG" 
05.
FOR /R %%B in (*!*) do (ECHO UNSUPORTED FILENAME: "%%B" >>"%TEMP%\RESIZER ERROR.LOG") 
06.
Setlocal EnableDelayedExpansion 
07.
SET DELSRC=OFF 
08.
SET QUALITY=uber 
09.
IF EXIST "!TEMP!\RESIZER ERROR.LOG" (NOTEPAD.EXE "!TEMP!\RESIZER ERROR.LOG" 
10.
                                                              GOTO :EOF 
11.
                                                              )
Die Sache mit dem "IF DEFINED", schon oft drüber gestolpert und nie verwendet.
Vieleicht sollt ich mir mal ein Batch Buch besorgen, unter DOS Zeiten hatte ich so was mal.
Mal sehen was es da heute zu Tage so gibt, denn im Netz finde ich immer nur FAQ's aus alten Zeiten wo meist C:\DOS noch mit drinnen steht.
Wenn ich jetzt noch einen minimalistischen VB Code finden würde um des Batch Fenster zu positionieren währe ich fürs erste fertig.

Liebe Grüße Trecasim
Bitte warten ..
Mitglied: rubberman
06.10.2013 um 14:13 Uhr
Hallo Trecasim.

Das mit den Ausrufezeichen ist mir auch schon aufgefallen, aber wen ich des ändern möchte, müßte ich ja ständig EnableDelayedExpansion deaktivieren und aktivieren.
Nee. Letztlich am Anfang einmal mit DisableDelayedExpansion die Variablen aus dem übergebenen Argument setzen, dann EnableDelayedExpansion spezifizieren. Die Variablenwerte werden in die Subumgebung vererbt.

Wenn ich jetzt noch einen minimalistischen VB Code finden würde um des Batch Fenster zu positionieren währe ich fürs erste fertig.
Erkläre mal genauer.

Grüße
rubberman
Bitte warten ..
Mitglied: Trecasim
06.10.2013 um 14:41 Uhr
Ich verwende dieses abgeschrieben VB Script um das Batch Fenster immer im Vordergrund zu haben wenn ich mit IrfanView eine Ansicht der Grafik öffnen lasse.
Meine Versuche da irgendwie was mit "window.moveTo 13,13" schlugen jedoch bis jetzt fehl.
Liegt vermutlich daran, das ich von VBS gerade soviel verstehe.

Click Clack
Altavista Suche ..., STRG+C, WIN+R, notepad, STRG+V, STRG+S und Click Clack mit der Maus oder ...

Liebe Grüße Trecasim

Hier mal das gespickte Script vom meinen Banknachbar
01.
Option Explicit 
02.
Dim pc, programm, fenstername 
03.
Dim wmi, system, process 
04.
Dim WshShell 
05.
programm = "cmd.exe" 
06.
fenstername = "RESIZER" 
07.
Set wmi = GetObject("winmgmts:") 
08.
Set system = wmi.instancesOf("win32_process") 
09.
For Each process In system 
10.
If lcase(process.name)=programm Then 
11.
Set WshShell = CreateObject("WScript.Shell") 
12.
With WshShell 
13.
.AppActivate fenstername 
14.
End with 
15.
Exit For 
16.
End If 
17.
Next
Bitte warten ..
Mitglied: rubberman
06.10.2013 um 14:56 Uhr
Mit VBScript ist das nicht machbar. Mit VB sicher, aber da bin ich nicht zu Hause... Suche dir ein 3rd Party Tool (NirCmd sollte das alles abdecken können, denke ich).

Grüße
rubberman
Bitte warten ..
Mitglied: Trecasim
06.10.2013 um 16:01 Uhr
Schade, aber nircmd is ned mein Ding. schubs ich das Fenster eben mit der Maus
Bitte warten ..
Mitglied: rubberman
06.10.2013, aktualisiert 07.10.2013
Spielerei ... :
Hast du das .NET Framework installiert? Dort hast du u.a. einen C# Compiler dabei.

*.bat
01.
@echo off &setlocal 
02.
 
03.
REM Pfade für Sourcecode und exe-Datei. 
04.
set "src="%temp%\movetoxy.cs"" 
05.
set "movetoxy="%temp%\movetoxy.exe"" 
06.
 
07.
REM Suche csc.exe (C# Compiler). 
08.
set "csc="&pushd "%SystemRoot%\Microsoft.NET\Framework" 
09.
for /d %%i in ("v*") do (dir /a-d /b "%%~fi\csc.exe" >nul 2>&1 && set "csc="%%~fi\csc.exe"") 
10.
popd 
11.
if not defined csc (echo C# Compiler nicht gefunden.&pause&goto :eof) 
12.
 
13.
REM C# Sourcecode schreiben. 
14.
>%src% ( 
15.
  echo(using System; using System.Runtime.InteropServices; class movetoxy { 
16.
  echo([DllImport("user32.dll", EntryPoint = "SetWindowPos"^)] 
17.
  echo(public static extern int SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X, int Y, int cx, int cy, uint uFlags^);  
18.
  echo([DllImport("kernel32.dll", ExactSpelling = true^)] public static extern IntPtr GetConsoleWindow(^); 
19.
  echo(public static int Main(string[] args^) {if (args.Length == 2^) { 
20.
  echo(try {int x=int.Parse(args[0]^); int y=int.Parse(args[1]^); 
21.
  echo(return (0 == SetWindowPos(GetConsoleWindow(^), IntPtr.Zero, x, y, 0, 0, 0x0001^)^) ? 1 : 0;} 
22.
  echo(catch {return 1;}} else {return 1;}}} 
23.
24.
 
25.
REM Compilieren, Sourcecode löschen. 
26.
%csc% /nologo /target:exe /out:%movetoxy% %src% 
27.
del %src% 
28.
 
29.
REM Fenster verschieben. 
30.
%movetoxy% 10 10 
31.
echo %errorlevel% 
32.
 
33.
REM Aufräumen. 
34.
del %movetoxy% 
35.
 
36.
pause
Grüße
rubberman

EDIT Rückgabewert von SetWindowPos verarbeitet.
Bitte warten ..
Mitglied: Trecasim
07.10.2013 um 18:32 Uhr
jo, des .NET gedöhns ist druff.
aber

Der Befehl ""C:\DOKUME~1\Frank\LOKALE~1\Temp\movetoxy.exe"" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
9009
C:\DOKUME~1\Frank\LOKALE~1\Temp\movetoxy.exe konnte nicht gefunden werden
Drücken Sie eine beliebige Taste . . .
Bitte warten ..
Mitglied: rubberman
07.10.2013 um 20:12 Uhr
Wenn du keinen Compilerfehler bekommst, ist dein Virenscanner vermutlich bereits da gewesen und hat die exe geschrottet, bevor auch nur die Chance bestanden hat sie auszuführen. So what
Wenn du willst, schreibe ich dir fix ein Minitool in C. Ist kein Aufwand.

Grüße
rubberman
Bitte warten ..
Mitglied: Trecasim
08.10.2013 um 16:23 Uhr
Jepp, im AV Spielemodus aktiviert und schon bekommt man nix mehr mit.
Der krallt sich des Ding immer, man was die heute alles als Virus erkennen. Voll nervig.
Da biste ständig am rumpfriemeln in der Ausnahme Liste.
Ne lass mal, is lieb gemeint aber ich bin jetzt des Mausgeschubse schon gewöhnt.
Nicht so schlimm hauptsache ich hab des mit dem Aktiven Fenster Script hinbekommen.

Liebe Grüße Trecasim
Bitte warten ..
Mitglied: rubberman
08.10.2013 um 18:23 Uhr
Hallo Trecasim.

man was die heute alles als Virus erkennen. Voll nervig.
Da biste ständig am rumpfriemeln in der Ausnahme Liste.

Amen
Manchmal glaube ich es macht sich keiner mehr Gedanken über Virensignaturen, statt dessen wird in einer Whitelist gesucht. Alles was dort nicht gefunden wird, wird angemeckert...

Grüße
rubberman
Bitte warten ..
Mitglied: Trecasim
09.10.2013 um 00:01 Uhr
Naja, früher da war des anders.
Da waren auch die Viren besser (und Cooler) und auch die Virenscanner.
Unter DOS Zeiten pccillin und die StationLock Karte und die Viren hatten keine chance mehr.
Na egal, so ändern sich die Zeiten.
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(1)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Heiß diskutierte Inhalte
DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (9)

Frage von JayyyH zum Thema Switche und Hubs ...

Backup
Clients als Server missbrauchen? (9)

Frage von 1410640014 zum Thema Backup ...

Windows Server
Mailserver auf Windows Server 2012 (9)

Frage von StefanT81 zum Thema Windows Server ...