Batch Schleife in Schleife, was mache ich falsch?

Moin,

ich versuche über einen bekannten Dateinamen von zwei Dateien den jeweiligen Überordner mit Pfad als Variable zu speichern.

Dazu fiel mir nur ein die gesuchte Datei temporär umzubenennen, einen Ordner mit dem Namen zu erstellen und in diesen mit CD zu wechseln.
Dann kann ich mit cd.. eine Ordnerebene zurückspringen und habe den gesuchten Pfad.

Nun muss ich noch den Pfad als Variable speichern.
%cd% gibt leider nicht den aktuellen Pfad sondern den Pfad vor begin der ersten Schleife aus.

Meine Alternatividee war:

for /f %%i in ('cd') do Set drv="%%i"

jedoch bleibt die Variable "drv" leer...

Hat jemand eine Idee?

 @echo off


REM 			suche nach Treiber .inf Dateien mit "oem" im Namen um den richtigen Pfad zu finden.
REM			dabei steht %%a für den Pfad zur .inf Datei.
for /f "delims=" %%a in ('dir "*oem*" /a-d /b /s ^| findstr.exe /l /i /c:.inf') do (




REM 			Trick um die richtigen Ordner als Pfad zu speichern:
REM 			zunächst umbenennen der .inf Datei in temp.tmp (später zurück benannt.)
ren "%%a" temp.tmp

REM 			Erstellen eines Ordners mit dem Namen der .Inf Datei.
mkdir "%%a"

REM 			welchseln in diesen Ordner und einen Schritt zurück gehen in den Überordner mit cd..
cd "%%a"
cd ..

REM			den Pfad des überordners als Variable "drv" speichern.
for /f %%i in ('cd') do Set drv="%%i"
echo variable cd ist %cd%
echo variable drv ist %drv%
REM						Hier ist der Fehler, dies klappt nicht.
pause
cls

REM			löschen des Ordners mit dem Namen der .inf Datei.
rd "%%a"
REM			umbenennen rückgängig machen.
ren temp.tmp "%%a"
Oh Gott, Oh Gott was machst du da. Mach das ganz anders! 100%
Der Weg zur Lösung ist gut. 0%
Mir fällt ein Besserer ein. Dieser wäre: 0%
Computer, Windows, Technik, IT, programmieren, Batch, cmd, EDV, Informatik, Script, Technologie, Spiele und Gaming
Eine Jar-Datei in der Eingabeaufforderung erstellen?

Ich lerne gerade Java mit einem Buch und bin gerade dabei, eine Jar-Datei über die Eingabeaufforderung zu erstellen. Doch da gibt es etwas das ich nicht verstehe und ich hoffe, dass ihr mir es erklären könnt.

Das ist die Klasse, die ich in eine Jar-Datei umwandeln soll:

package de.galileocomputing.schroedinger.java.kapitel13;

import java.io.IOException;

public class HalloSchroedinger {

    public static void main(String[] args) throws IOException{
        System.out.println("Hallo Schrödinger");
    }

}

Das kompilieren bekomme ich ohne Probleme in der cmd hin:

javac HalloSchroedinger.java

Auch das erstmalige Erstellen einer Jar-Datei:

jar cf SagHallo.jar C:\Users\...\Documents\Java\SchrödingerProgrammiertJava\src\de\galileocomputing\schroedinger\java\kapitel13\HalloSchroedinger.java

Beim Hinzufügen der auszuführenden Main-Methode klappt es aber nicht mehr... In meinem Buch sieht der Text so aus:

jar ufe SagHallo.jar de.galileocomputing.schroedinger.java.kapitel13.HalloSchroedinger de\galileocomputing\schroedinger\java\kapitel13\HalloSchroedinger.class

Es ist ja eigentlich fast genau so, wie beim einfachen Erstellen der Jar-Datei. Doch der Teil nach dem "SagHallo.jar" bis zum Anfang des Pfades gibt mit Rätsel auf. Was ist das? Wie lautet der bei mir?

Das habe ich schon probiert...

C:.Users.'''.Documents.Java.SchrödingerProgrammiertJava.src.de.galileocomputing.schroedinger.java.kapitel13.HalloSchroedinger

...dann wird aber eine "ClassNotFoundException" geworfen.

Ich hoffe ihr könnt mir helfen. Vielen Dank im voraus.

(Ich weiß übrigens, dass man es normalerweise nicht über die CMD macht.)

Computer, Technik, programmieren, Java, cmd, Eingabeaufforderung, JAR, Technologie
Batch Befehl um Datei zu entpacken und sie dann kopieren und einzufügen?

Hallo, ich möchte gerne .zip Dateien per Batch Datei entpacken und dann den entpackten in einem anderen Ordner einfügen um zu überschreiben. Und das muss mit einer .bat Datei geschehen um das dann mit der Aufgabenplanung (bei Windows vorinstalliert) automatisch zu machen. Ich habe 7-Zip auf dem Computer installiert, falls es notwendig ist + Windows 10.

Ich habe bisher nur einen Befehl geschrieben, der die neueste .zip Datei in einem anderen Ordner bewegt. Von "einfügen" ist glaub ich nichts die Rede. Wie geht das mit nem normalen Ordner? Bzw. wie muss ich meinen Befehl bearbeiten, dass man auch normale Ordner in andere Ordner kopiert und einfügt?

2te Frage noch. Beim entpacken, soll man am besten mit "hier entpacken" gehen. Normal die Datei geht zwar auch, aber dann ist da noch der Ordner anderst benannt. Und erst wenn man in den Ordner geht, sieht man die richtige Ordner Datei.

-----------------------------------------------------------------------------------

Hier noch der Befehl, den ich benutzt habe als .bat :

@echo off & setlocal

set source=STANDARDORDNER EINFÜGEN

set target=AUSGABEORDNER EINFÜGEN

for /f "delims=" %%a IN ('dir /B /S /A-D /O-D "%source%\*.bkf"') DO @(copy "%%a" "%target%" & goto :end)

:end

-----------------------------------------------------------------------------------

Falls es schwer verständlich ist, könnte ich auch ein kurzes Bild mit Gimp zeichnen und hier hochladen. Um zu zeigen was ich meine. Danke schonmal für die Antwort.

Computer, Internet, Microsoft, Technik, Editor, programmieren, Batch, cmd, Informatik, Technologie, Windows 10

Meistgelesene Beiträge zum Thema Cmd