2016-03-23 12 views
0

Ich habe einen kleinen Abschnitt eines Windows-Batch-Skript, das für jede Zip-Datei, die es findet, entpackt es an einem bestimmten Speicherort, dann löscht es. Das funktioniert gut, aber ich wollte es ändern. Wenn es also eine Zip-Datei findet, sollte es in einen neuen Ordner im aktuellen Ordner namens "current .zip name + current date-time" extrahiert werden. Aber ich kann nicht scheinen, dass das funktioniert, es sieht so aus, als ob es es in den übergeordneten Ordner extrahiert, den ich für die Suche angegeben habe, anstatt in den Ordner, in dem es gefunden wird.Windows Stapel entpacken, um das Ergebnis zu suchen Speicherort Ordner

Der Grund für diese Anforderung ist, dass die ZIP in einem anderen Ordner jedes Mal nach dem Build benannt wird, z. \ server \ g $ \ Dashboard \ Results \ NightlyBuild \ 25 \ Ich möchte also die Zip-Datei in diesem Ordner extrahieren.

for /f "tokens=1-3 delims=/ " %%a in ('date /t') do (set mydate=%%c-%%b-%%a)
for /f "tokens=1-2 delims=/:" %%a in ('time /t') do (set mytime=%%a%%b)

for /R \\server\g$\Dashboard\Results\NightlyBuild\ %%f in (*.zip) do "C:\Program Files (x86)\WinZip\WZUNZIP.EXE" -d %%f "%%~nf-%mydate%-%mytime%\"

if ERRORLEVEL 0 for /R \\server\g$\Dashboard\Results\NightlyBuild\ %%f in (*.zip) do del %%f

Jede Hilfe wird sehr geschätzt, Dank!

+0

Sie möchten '/' aus delims für Zeit entfernen. Und Sie wollen 'Token = 2,3 ', da die beschreibende Bezeichnung einen Doppelpunkt hat, so dass Token 1' Die aktuelle Zeit ist 'ist. –

+0

Danke @Noodles, macht Sinn. Nur brauchen Sie es jetzt zu seinem aktuellen Standort zu extrahieren – adjuzy

+0

'%% ~ dpf' ist der Ordner, der die Zip enthält. Siehe 'for /?'. –

Antwort

0

Wie @Noodles in den obigen Kommentaren darauf hingewiesen, %%~dpf ist der Ordner mit dem Reißverschluss.

Verwandte Themen