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

Ordnernamen mit Variablen erstellen bzw. verändern

Frage Entwicklung Batch & Shell

Mitglied: Ovis

Ovis (Level 1) - Jetzt verbinden

13.02.2006, aktualisiert 15.02.2006, 8390 Aufrufe, 6 Kommentare

Hallo und 'nabend zusammen, ich möchte aus einer Variablen einen Ordnamen erstellen bin aber mittlerweile etwas konfus.

Ich habe jetzt einige Abende (z.T. auch Wochenenden) hier verbracht, auf der Suche nach einer Lösung für meine Batch Probleme. Zum größten Teil habe ich alles hier gefunden um mein automatisches Update meiner Virensignaturen und von Spybot zu starten.

Kenne mich mit Batch Programmierung nur wenig aus und kann mir daher alles nur zusammen Wursteln, aber wie gesagt es läuft.
Allerdings komme ich jetzt nicht mehr weiter, mit meiner Kleinigkeit. Im Verlauf der nachfolgenden Prozedur möchte ich einen Ordnernamen aus der zuletzt eingelesenen Zipdatei erstellen. Soweit so gut, aber der Ordner soll nicht z.B. Dat-4692.zip heißen, sondern Dat.4692
Vielleicht sehe ich den Wald vor lauter Bäumen nicht mehr, aber ich krieg´s nicht hin ....

for /F %%i in ('dir dat-*.zip /b /o:d') do set var=%%i
echo %var%
set vv=%var:~0,4%
set ww=%var:~4,4%
md "%vv%%ww%" 'da macht er ein Blank zwischen die Variablen?!

Danke für jeden Hinweis schon mal im Voraus (dann kann ich wieder ruhig schlafen).
grüsse Ovis


p.s.: meine automatik (ich weiß, die programme können das auch, aber wer will´s immer einfach .....)

cmdow @ /HID
@echo off

set verz="D:\Progra~1\Gemein~1\Networ~1\Engine"
set zielverz=c:\temp2\dat-fi~1
set logfile=%zielverz%\autoupdaten.log
set zielpc=192.211.99.7

echo
BEGINN Update von Mcafee und Spybot %date% %username% %computername% %time:~0,8%
>> %logfile%

:Verbindungstest
echo ping -n 2 %zielpc% | find "TTL=" >> %logfile%
ping -n 2 %zielpc% | find "TTL=" >> %logfile%

echo goto %errorlevel% >> %logfile%
goto %errorlevel% >> %logfile%

:0
rem Verbindung OK
goto :laufw

:1
rem Keine Verbindung
goto exit2

:laufw
echo if not exist Y:\ ( start /W %systemroot%\system32\wscript.exe "%zielverz%\laufhol2.vbs" ) >> %logfile%
if not exist Y:\ ( start /W %systemroot%\system32\wscript.exe "%zielverz%\laufhol2.vbs" )
echo if not exist Y:\ goto exit2 >> %logfile%
if not exist Y:\ goto exit2

:step1
rem ------------------------ Kopieren von Y:\Dat*.zip nach zielverz
echo if not exist y:\dat*.zip goto step2 >> %logfile%
if not exist y:\dat*.zip goto step2

echo for /F %%i in ('dir y:\dat*.zip /b /o:d') do set kop1=%%i >> %logfile%
for /F %%i in ('dir y:\dat*.zip /b /o:d') do set kop1=%%i >> %logfile%

echo robocopy "y:" %zielverz%\ %kop1% /Z /R:5 /W:2 >> %logfile%
robocopy "y:" %zielverz%\ %kop1% /Z /R:5 /W:2 >> %logfile%
echo
goto %errorlevel%

:0
echo ----------------- Nix zu kopieren bei STEP1 >> %logfile%
goto step2 >> %logfile%

:1
rem -------------------------- Verarbeitung geht los
echo if not exist %zielverz%\dat*.zip goto step2 >> %logfile%

if not exist %zielverz%\dat*.zip goto step2 >> %logfile%
echo for /F %%i in ('dir %zielverz%\dat*.zip /b /o:d') do set var=%%i >> %logfile%
for /F %%i in ('dir %zielverz%\dat*.zip /b /o:d') do set var=%%i >> %logfile%

echo unzip -o %zielverz%\%Var% -d %verz% >> %logfile%
unzip -o %zielverz%\%Var% -d %verz% >> %logfile%

ping /n 4 localhost >nul
goto step2

:2
echo Datei(en) gelöscht im Zielverz wg. manuellem Löschen in Quellverz!! >> %logfile%
goto step2

:16
echo
! Parameterfehler! >> %logfile%
goto exit4


:step2
rem -------------------------- Kopieren von y:\Spybot*.exe nach zielverz
echo if not exist y:\spybotsd_includes.exe goto exit4 >> %logfile%
if not exist y:\spybotsd_includes.exe goto exit4

echo robocopy "y:" %zielverz%\ spybotsd_includes.exe /Z /R:5 /W:2 >> %logfile%
robocopy "y:" %zielverz%\ spybotsd_includes.exe /Z /R:5 /W:2 >> %logfile%
echo
>> %logfile%
goto %errorlevel%

:0
echo ----------------- Nix zu kopieren bei STEP2 >> %logfile%
goto exit3 >> %logfile%

:1
rem -------------------------- Verarbeitung geht los
echo if not exist y:\spybotsd_includes.exe goto exit4 >> %logfile%
if not exist y:\spybotsd_includes.exe goto exit4
echo
>> %logfile%
echo %zielverz%\spybotsd_includes.exe /S >> %logfile%
%zielverz%\spybotsd_includes.exe /S >> %logfile%

ping /n 6 localhost >nul
goto exit

:2
echo Datei(en) gelöscht im Zielverz wg. manuellem Löschen in Quellverz!! >> %logfile%
goto exit5

:16
echo
! Parameterfehler! >> %logfile%
goto exit4

:exit
echo
ENDE Update von Mcafee und Spybot %date% %username% %computername% %time:~0,8%
>> %logfile%
echo net use y: /d >> %logfile%
net use y: /d >> %logfile%
call %zielverz%\erledigt.vbs
exit

:exit2
echo
ENDE2 Laufwerk Y: war nicht da ! %date% %username% %computername% %time:~0,8%
>> %logfile%
echo net use y: /d >> %logfile%
net use y: /d >> %logfile%
call %zielverz%\fehler.vbs
exit

:exit3
echo
ENDE3 Es gab NICHTS upzudaten ! %date% %username% %computername% %time:~0,8%
>> %logfile%
echo net use y: /d >> %logfile%
net use y: /d >> %logfile%
call %zielverz%\fehler3.vbs
exit

:exit4
echo
ENDE4 GROBER FEHLER ! %date% %username% %computername% %time:~0,8%
>> %logfile%
echo net use y: /d >> %logfile%
net use y: /d >> %logfile%
call %zielverz%\fehler4.vbs
exit
Mitglied: Petrof
14.02.2006 um 00:11 Uhr
Hallo,

der war nicht schlecht!

Nimm einfach das Leerzeichen am Ende der dritten Zeile weg!


Gruß
Peter
Bitte warten ..
Mitglied: Ovis
14.02.2006 um 00:30 Uhr
.... der Blitz soll mich doch beim ..... treffen, so was blödes aber auch. Mit so einem Fehler hätte ich nicht gerechnet. Großen Dank an dich.

Gibt´s eine elegantere Version den - durch einen . zu ersetzen, ausser einem Rename danach?
grüsse
Ovis
Bitte warten ..
Mitglied: Petrof
14.02.2006 um 00:46 Uhr
Wieder die 3 Zeile

set vv=%var:~0,3%.

Bitte keine Leerzeichen am Ende

sry
Peter
Bitte warten ..
Mitglied: Ovis
14.02.2006 um 17:42 Uhr
.... so einfach kann die Welt sein .... Jetzt funktioniert´s, wie es auch soll.
Danke Peter!

grüsse ovis
Bitte warten ..
Mitglied: Biber
14.02.2006 um 19:52 Uhr
Moin ovis,

ich weiß jetzt nicht, ob Deine Frage damit beantwortet ist.
Eine Alternative (oder zumindest eine Ergänzung) von mir:

a) ich setze die variablen immer in Anführungszeichen, um trailing blanks zu vermeiden.

for /F %%i in ('dir dat-*.zip /b /o:d') do set "var=%%~ni"
echo %var%
:: --set vv=%var:~0,4%
::-- set ww=%var:~4,4%
::-- md "%vv%%ww%"
md "%var:-=.%"

...also ein "Ersetze in %var% ALLE Bindestriche durch Punkte".
Wenn also die Datei "dat-1234.zip" heißt, wird %var% zu "dat-1234" und beim MD dann zum Verzeichnis "dat.1234".
Wenn die Datei allerdings auch "dat-12-34.zip" heißen kann, dann käme auch "dat.12.34" als Verzeichnis raus.

HTH Biber
Bitte warten ..
Mitglied: Ovis
15.02.2006 um 14:44 Uhr
Hallo Biber,

Danke auch für deine Variante. Spannend was da alles machbar ist - ich glaube, ich werde meine Automatik wieder umbauen.
grüsse
ovis
Bitte warten ..
Ähnliche Inhalte
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
Ordnernamen aus Dateinamen erstellen
Frage von Dr.ByteBatch & Shell1 Kommentar

Hi Gemeinde, benötige ein kleines Tool. Es liegen ca 100 Dateien in einem Ordner. Ich bräuchte nun ein Tool ...

Batch & Shell
Wert in einer Variable verändern
gelöst Frage von donmanolitoBatch & Shell1 Kommentar

Hallo in dieser Schleife: echo off for /D %%a in ("c:\Ordner\*") DO @( echo %%a ) bekomme ich für ...

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 ...

Neue Wissensbeiträge
Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 6 StundenViren und Trojaner1 Kommentar

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 10 StundenRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 3 TagenInternet17 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Webbrowser

Bugfix für Firefox Quantum released - Installation erfolgt teilweise nicht automatisch!

Erfahrungsbericht von Volchy vor 4 TagenWebbrowser8 Kommentare

Hallo zusammen, gem. dem Artike von heise online wurde mit VersionFirefox 57.0.1 sicherheitsrelevante Bugs behoben. Entgegen der aktuellen Veröffentlichung ...

Heiß diskutierte Inhalte
Batch & Shell
Trusted Sites für alle User auf dem PC einpflegen
Frage von xXTaKuZaXxBatch & Shell12 Kommentare

Aufgabestellung: Es sollen auf 1 PC (bzw. mehreren PCs) vertrauenswürdige Sites per Powershell eingetragen werden, die für alle User ...

Voice over IP
Telefonstörung - Ortsrufnummern kein Verbindungsaufbau
Frage von Windows10GegnerVoice over IP10 Kommentare

Hallo, sowohl bei uns als auch beim Opa ist es über VoIP nicht möglich Ortsrufnummern anzurufen. Es kommt nach ...

Vmware
DOS 6.22 in VMWare mit CD-ROM
gelöst Frage von hesperVmware8 Kommentare

Hallo zusammen! Ich hab ein saublödes Problem. Es ist eine VMWare mit DOS 6.22 zu erstellen auf dem ein ...

Cloud-Dienste
PIM als SaaS Nutzungsgebühr
Frage von vanTastCloud-Dienste8 Kommentare

Moin, wir haben uns ein PIM (Product Information Management) nach unseren Ansprüchen für viel Geld als SaaS-Lösung bauen lassen. ...