Top-Themen

Aktuelle Themen (A bis Z)

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 Unbekannte Ordnernamen in Variablen schreiben

Mitglied: Cassio

Cassio (Level 1) - Jetzt verbinden

31.03.2009, aktualisiert 17:49 Uhr, 5642 Aufrufe, 6 Kommentare

Hallo!
Ich versuche mit batch unbekannte Unterordner in eine Variable zu schreiben, um diese als Pfadangabe zum Packen derer Inhalte zu verwenden.

System Windows XP SP3

Seit gestern mit batch näher befasst, also totaler Anfänger.

Zu meiner Frage:
Also, meine .bat datei liegt in einerm Ordner in dem sich ein Unterordner namens "Levels" befindet.
In diesen Ordner befinden sich wie der Name sagt Levels von einem Game.
Jedes Level besitzt einen eigenen Ordner in diesem Levels Verzeichnis, der mit dem Namen des Levels betitelt ist.

So schaut die Struktur also aus:

Hauptordner\
Hauptordner\meine.bat
Hauptordner\Levels\
Hauptordner\Levels\LevelX\
Hauptordner\Levels\LevelY\
Hauptordner\Levels\LevelZ155548\

Ich möchte nun von meiner .bat Datei aus in jeden Levelordner reingehen um dort mit Hilfe von 7-zip dateien zu packen.
Das script zum Packen funktioniert einwandfrei, nur habe ich es bisher immer einzeln aus jedem Levels ordner gestartet:
01.
del client.zip 
02.
%sevenzip% a -tzip client.zip * -xr!AusgeschlosseneOrdner\
Ich lösche also erst die vorhandene .zip und erstelle eine neue.
%sevenzip% ist der Pfad zu meiner 7z.exe
Dieses Script soll nun in meiner .bat Datei im Hauptordner funktionieren und dabei nacheinander alle Levels durchmachen.


Das hier habe ich bei meiner Suche hier schon gefunden:
01.
for /d %%i in ("C:\Pfad\Hauptordner\Levels\*.*") do echo %%~xni
Das gibt mir die Levels schön aufgelistet untereinander. Nur wie mache ich damit weiter, wenn es überhaupt geht?
Mitglied: bastla
31.03.2009 um 18:10 Uhr
Hallo Cassio und willkommen im Forum!

Am einfachsten dürfte es sein, temporär in den jeweiligen Ordner zu wechseln - (ungetestet) also:
01.
@echo off & setlocal 
02.
for /d %%i in ("C:\Pfad\Hauptordner\Levels\*.*") do ( 
03.
    pushd "%%i" 
04.
    del client.zip 
05.
    %sevenzip% a -tzip client.zip * -xr!AusgeschlosseneOrdner\ 
06.
    popd 
07.
)
Grüße
bastla
Bitte warten ..
Mitglied: Cassio
31.03.2009 um 23:05 Uhr
Vielen Dank, hat super funktioniert.
Hätte nicht dedacht, dass es mit so wenig Aufwand geht
Bitte warten ..
Mitglied: Cassio
15.04.2009 um 03:06 Uhr
Habe noch eine Frage hierzu.

Wie kann ich leere Ordner überspringen?
"Leere" Ordner sind dabei auch die, die als Inhalt nur einen ".svn" Ordner besitzen.

Die Schleife soll also überprüfen ob nur .svn existiert oder gar nichts und dementsprechen das Packen dort auslassen.

MfG Cassio
Bitte warten ..
Mitglied: bastla
15.04.2009 um 14:21 Uhr
Hallo Cassio!

Nur zur Sicherheit: Ein Ordner gilt als leer, wenn er keine Dateien und keine Unterordner außer ".svn" enthält? Wenn ja, dann etwa so:
01.
@echo off & setlocal 
02.
for /d %%i in ("C:\Pfad\Hauptordner\Levels\*.*") do ( 
03.
    pushd "%%i" 
04.
    set Doit= 
05.
    dir /b /a-d >nul 2>&1 && set Doit=True 
06.
    dir /b /ad|findstr /v /x /c:"\.svn">nul && set Doit=True 
07.
    if defined Doit ( 
08.
        echo Bearbeite Ordner %%i 
09.
REM        del client.zip 2>nul 
10.
REM        %sevenzip% a -tzip client.zip * -xr!AusgeschlosseneOrdner\ 
11.
12.
    popd 
13.
)
Die beiden "REM" sollen das Testen erleichtern, da so die dahinter stehenden Befehle nicht ausgeführt werden - wenn die Ergebnisse vernünftig aussehen, einfach diese "REM" (und ev auch die Zeile 8) entfernen.

Grüße
bastla
Bitte warten ..
Mitglied: Cassio
16.04.2009 um 00:01 Uhr
Also ich weiß jetzt nicht ob ich einen Fehler beim kopieren gemacht habe...

Aber mit deinem Code wird noch immer alles gepackt.
Wenn ich aber in Zeile 04 Doit=True setze und den beiden anderen Doit= zuweise, werden nur genau die falschen Ordner gepackt.

Immerhin funktioniert es wenn ich auch noch die Zeile 07 auf
if not defined Doit (
ändere...

Kann doch nicht sein, oder? ^^
Bitte warten ..
Mitglied: bastla
16.04.2009 um 00:30 Uhr
Hallo Cassio!

Eigentlich nimmst Du eine vollständige Umkehrung vor - wenn es damit klappt, hätte es auch umgekehrt funktionieren sollen. Andererseits ist es ja letztlich egal, auf welche Art Du die richtigen Ordner herausfindest (nur "Doit" hieße dann wohl besser "Omit" ).

Fazit: Wenn Deine aktuelle Schreibweise (ausreichend getestet) das gewünschte Ergebnis bringt, lass es einfach dabei ...

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Mehrere Ordnernamen auslesen und in eine Variable schreiben

gelöst Frage von schmithoBatch & Shell5 Kommentare

Hallo zusammen, ich versuche verzweifelt eine Lösung eines Problems zu finden, wie ich den Namen mehrere Ordner in eine ...

Visual Studio

Variabler Ordnername VB.Net

gelöst Frage von Tealk144Visual Studio12 Kommentare

Servus, also ich habe einen Ordner an dem immer ein Datum angehängt ist, diesen Variablen namen müsste ich irgendwie ...

Batch & Shell

Textdatei zeilenweise in Variable schreiben

gelöst Frage von goodbytesBatch & Shell20 Kommentare

Hallo, mit einer Batch möchte ich mehrere Laufwerke mappen, abhängig vom Usernamen. Klar könnte ich auch für jeden User ...

Batch & Shell

SED Abfrageergebnis in Variable schreiben

gelöst Frage von BloodyRulzBatch & Shell4 Kommentare

Hallo, kann mir jemand sagen, wie ich eine SED Abfrage in eine Batchvariable schreibe. Ich möchte praktisch foglendes erreichen: ...

Neue Wissensbeiträge
Windows 10

Neue Sicherheitslücke in Windows 10 (Version 1709) durch Google öffentlich geworden

Information von kgborn vor 15 StundenWindows 10

Vor ein paar Tagen haben Googles Sicherheitsforscher vom Projekt Zero eine Sicherheitslücke im Edge-Browser publiziert. Jetzt wurde eine weitere ...

iOS
IOS 11.2.6 verfügbar
Information von sabines vor 20 StundeniOS

Mit dem Update soll der Bug behoben werden, bei dem eine bestimmte Zeichenkette IOS zum Absturz gebracht hat.

Sicherheit
Sicherheitsrisiko: Die Krux mit 7-Zip
Information von kgborn vor 1 TagSicherheit8 Kommentare

Bei vielen Anwendern ist das Tool 7-Zip zum Entpacken von Archivdateien im Einsatz. Die Software ist kostenlos und steht ...

Internet

Datendealing im WWW Tracking Methoden immer brutaler

Information von sabines vor 1 TagInternet

Interessanter Artikel zum Thema Tracking im WWW und die immer "besseren" Methoden des Trackings. Professor Arvind Narayanan (Princeton-Universität) betreibt ...

Heiß diskutierte Inhalte
Router & Routing
LANCOM VPN CLIENT einrichten
Frage von Finchen961988Router & Routing27 Kommentare

Hallo, ich habe ein Problem und hoffe ihr könnt mir helfen, wir haben einen Kunden der hat einen Speedport ...

Windows Server
AD DS findet Domäne nicht, behebbar?
Frage von schapitzWindows Server25 Kommentare

Guten Tag, ich habe bei einem Kunden ein Problem mit den AD DS. Umgebung ist folgende: Windows Server 2016 ...

LAN, WAN, Wireless
VPN Cisco ASA5505 PaloAlto PA-200
gelöst Frage von YannoschLAN, WAN, Wireless22 Kommentare

Hallo zusammen, ich würde gerne ein Site-to-Site VPN zwischen den beiden Standorten aufbauen. PaloAlto PA200 Internetanschluss Deutsche Telekom GK ...

SAN, NAS, DAS
Qnap TS-453S Pro - Anbindung Active Directory
Frage von JuckieSAN, NAS, DAS13 Kommentare

Hallo zusammen, ich habe hier eine Qnap TS-453S Pro die sich mal so absolut gar nicht in das Active ...