{title}

hoffe ihr könnt mir helfen.
Hier ist eine Auswahl dessen, was ich mit einer Batch-Datei machen möchte
cd {dir} {ordner} {ordner}
{ein Programm ausführen} (dos program)
basierend auf dem ausgeführten Programm gibt es einen VARIABLE (nicht konstanten) Wert wie folgt:
name = 1234
name = 3456
name = 4567
name = 67890
Was ich möchte, ist die Batch-Datei, um diesen Wert zu erhalten und es gibt einen Befehl, um es auszuführen, zum Beispiel:
{command} 1234
{command} 3456
{command} 4567
{command} 67890
Ausfahrt
das ist für msXP.
Danke im Voraus

Wenn dies ein Beispiel für klares, präzises Denken ist, fürchte ich um die Zukunft. Was treibt was in diesem Szenario? Bestimmt die Namensvariable, welcher Befehl ausgeführt wird, oder bestimmt der Befehl, welche Variable verwendet wird?
Vielleicht könntest du mehr erklären. Was sehen Sie, nachdem Sie Ihren Batchdateinamen eingegeben haben? Übergeben Sie Variablen entlang der Befehlszeile oder möchten Sie lieber ein Menü mit den Befehlen als Optionen sehen? Oder möchten Sie lieber die Namensvariablen im Menü sehen?
Lass uns wissen.

LOLS, es ist einfach passiert, dass ich nur ein bisschen DOS-Wissen habe. Meine Probleme sind solche komplexen Probleme
Nun, alles, was ich brauche, ist den Wert des Namens var zu bekommen, um ihn in anderen Programmiersprachen zu manipulieren, soweit ich weiß, gibt es einen Befehl "get" (was bedeutet, den Wert einer Variablen zu bekommen), ich kenne die Logik, aber ich weiß nicht Wissen, wie ich das Ergebnis im Denken tun kann
Hier ist der vollständige Prozess:
Ich weiß, dass Sie von dem Programm FU Rootkit gehört haben, das ein DOS-Programm ist. Es zeigt bestimmte Prozesse in Ihrem System an (das nicht konstant ist). Dann können Sie diese Prozesse ausblenden, indem Sie einen Befehl und dann den Wert des Prozesses eingeben, zum Beispiel: Der Wert von services ist 4. Dann müssen Sie fu -ph 4 eingeben, um den Services-Prozess auszublenden und so weiter.
Was ich will ist, den gesamten Prozess durch eine Batch-Datei zu automatisieren, ist dies möglich? Vielen Dank

Ich war mit diesem Rootkit-Programm nicht vertraut und meine Recherchen ergaben Seiten, die größtenteils auf Deutsch waren (ich denke, es war Deutsch). In jedem Fall ist die Logik in jeder Sprache ziemlich gleich.
Code:
set/p name = Prozess-ID eingeben
cd {dir} {ordner} {ordner}
fu -ph% name%
Hoffe das hilft.

ok, vielen dank

Ich weiß, dass der Befehl set hier funktioniert, aber es fehlt etwas und ich kann nicht das gewünschte Ergebnis erzielen.
Hier finden Sie eine ausführlichere Erklärung für Ihre Geduld
Microsoft Windows XP
(C) Copyright 1985-2001 Microsoft Corp.
C: Dokumente und Einstellungen xxxxx> CD-Desktop
C: Dokumente und Einstellungen xxxxx Desktop> CD-Rootkit
C: Dokumente und Einstellungen xxxx Desktopootkit> cd fu
C: Dokumente und Einstellungen GameZone Desktopootkit fu> fu -pl 500
Prozess: fu.exe: 2868
Prozess: System: 4
Prozess: SMSS.EXE: 460
Prozess: CSRSS.EXE: 516
Prozess:
Prozess: SERVICES.EXE: 584
Prozess: LSASS.EXE: 596
Prozess:
Prozess:
Prozess:
Prozess:
Prozess:
Prozess:
Prozess: cmd.exe: 1616
Alles, was ich brauche, ist die Zahl rechts neben dem Prozess-Beispiel 4.460.516 (aber diese Zahlen sind NICHT konstant, sie ändern sich jedes Mal, wenn der gesamte Prozess wiederholt wird.)
Auf meiner Batch-Datei kann ich nur so weit gehen und dies anzeigen. Das nächste Verfahren sollte das Tippen sein
c: fu -ph 4
dann
c: fu -ph 460
dann
c: fu -ph 516
Wenn alles eingegeben ist, wird der Befehl beendet
Es sieht einfach aus, aber ich habe es schwer, weil der Wert der Prozess-ID variabel ist. Was soll ich tun? ist es möglich, dies unter DOS zu tun oder es werden andere Programmiersprachen benötigt? Danke

Oh, übrigens sollte es keine Benutzereingaben geben. Es sollte nur auf dem Befehl basieren fu -pl
Danke noch einmal

Keine Benutzereingabe. Hmmm.
Code:
@echo aus
cd desktopootkit fu
für/f "tokens = 1-3 delims =:" %% a in ('fu -pl 500') do (
if %% c GEQ 1 fu -ph %% c
)
Wenn sich die PIDs bewegen, kann dies zu unvorhersehbaren Ergebnissen führen.
Viel Glück.

Dies kann helfen oder auch nicht, aber ich hatte viele Stunden lang Probleme mit einer zurückgegebenen Variablen, die nicht den Erwartungen entsprach. Meine Lösung bestand darin, die folgenden Befehle einzuschließen:
setlocal enabledelayedexpansion
wenn definiert RTV2 echo RTV2 ist definiert als! RTV2!
endlokal
Ich hoffe das hilft.

Stapelvariable zum Kopieren erforderlich

Ich brauche eine Variable für DOS. Ich möchte Links.txt auf alle Laufwerke in einer time.copy-Datei kopieren. Links.txt% alldrives% Ich weiß nicht, was anstelle von% alldrives% für jede Laufwerkskopie eingegeben werden soll.

Welchen Wert haben Sie für% alldrives% geplant? Es ist möglicherweise einfacher, jedes Laufwerk einzeln in einer Schleife auszuführen.
Code:
for/f "tokens = 3" %% i in ('Echolisten-Volume ^ | Diskpart ^ | find/i "Partition"') do (copy links.txt %% i: ) Sie können die Pfade nach Bedarf korrigieren. Viel Glück.

Ich habe alles in einem Stapel gespeichert. Auch meine Pfade haben sich so geändert
Code:
for/f "tokens = 3" %% i in ('echo list volume ^ | diskpart ^ | find/i "G:") do (copy links.txt %% i: ) Funktioniert aber nicht.

Sidewinder, eine solche Batch-Datei ist für einen Anfänger eine übermäßig starke Magie! Sie haben den falschen Pfad "repariert".

Noch nicht verstanden. Funktioniert auch nicht. Bitte mit Code erklären. Ich möchte links.txt kopieren G: und D:


Code:
Für/f "tokens = 3" %% i in ('Echolisten-Volume ^ | Diskpart ^ | find/i "Partition"') wird die Datei links.txt %% i: kopiert zu jedem sichtbaren logischen Laufwerk. Wenn Sie nur nach G: und D kopieren wollten:
Code:
für %% p in (D G) kopiere links.txt %% p:

Oder warum nicht einfach machen
kopiere links.txt d: kopiere links.txt g:
?

Ach komm schon, das ist zu einfach

Diese Arbeit gut:
Code:
Kopieren Sie für %% p in die Datei Links.txt %% p: Der erste Code funktioniert jedoch noch nicht. Vielen Dank und speziellem BC_Programmer

Beliebte Beiträge