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

Batch Ordnerstruktur nach einer Datei durchsuchen Diese dann mit type in der Batch anzeigen

Mitglied: CrasherX

CrasherX (Level 1) - Jetzt verbinden

08.03.2013 um 01:48 Uhr, 1616 Aufrufe, 10 Kommentare

Hallo zusammen
Ich quäle mich nun schon einige Stunden an der Lösung eines Problemchen.
Da ich relativer Anfänger bin, was Batch anbelangt... Frage ich mal die Profis.

Es geht um folgendes Skritp:

01.
@echo off 
02.
:noteSys1 
03.
set saven=save.note 
04.
set loadn=load.note 
05.
set delen=dele.note 
06.
title :::Neue Notitz:: 
07.
echo ################################### 
08.
echo #  [save.note] - Speichern        # 
09.
echo #  [dele.note] - Eingabe L”schen  # 
10.
echo #  [load.note] - Notitz Laden     # 
11.
echo ################################### 
12.
echo Neue Notitz: 
13.
echo ------------ 
14.
del /f "%userprofile%\documents\newnote.tmp" >nul 
15.
for /f "tokens=2 delims=:." %%i in ('chcp') do set "CP=%%i" 
16.
chcp 1252>nul 
17.
set /p newnote1= 
18.
if "%newnote1%"=="%saven%" ( 
19.
	goto :savenote 
20.
21.
if "%newnote1%"=="%delen%" ( 
22.
	goto :delenote 
23.
24.
if "%newnote1%"=="%loadn%" ( 
25.
	goto :loadnet 
26.
27.
echo %newnote1%>>"%userprofile%/documents/newnote.tmp" 
28.
set /p newnote2= 
29.
if "%newnote2%"=="%saven%" ( 
30.
	goto :savenote 
31.
32.
if "%newnote2%"=="%delen%" ( 
33.
	goto :delenote 
34.
35.
if "%newnote2%"=="%loadn%" ( 
36.
	goto :loadnote 
37.
38.
echo %newnote2%>>"%userprofile%/documents/newnote.tmp" 
39.
set /p newnote3= 
40.
if %newnote3%==%saven% ( 
41.
	goto :savenote 
42.
43.
if %newnote3%==%delen% ( 
44.
	goto :delenote 
45.
46.
if %newnote3%==%loadn% ( 
47.
	goto :loadnote 
48.
49.
echo %newnote3%>>"%userprofile%/documents/newnote.tmp" 
50.
chcp %CP%>nul 
51.
:delenote 
52.
cls 
53.
goto :noteSys1 
54.
:savenote 
55.
cls 
56.
title Speichern... 
57.
echo Speichern der Notitz 
58.
echo Bitte gib einen gew”nschten Namen an... 
59.
echo. 
60.
set /p savename="\> 
61.
if exist "%userprofile%\documents\Notitzen\Am [%date%] erstellt" ( 
62.
	copy "%userprofile%\documents\newnote.tmp" "%userprofile%\documents\Notitzen\Am [%date%] erstellt\%savename%" 
63.
	) else ( 
64.
mkdir "%userprofile%\documents\Notitzen\Am [%date%] erstellt" 
65.
copy "%userprofile%\documents\newnote.tmp" "%userprofile%\documents\Notitzen\Am [%date%] erstellt\%savename%" 
66.
67.
rem ä = ALT+0132 
68.
rem ü = ALT+0129 
69.
rem ö = ALT+0148 
70.
:loadnote 
71.
cls 
72.
title Notitzen laden... 
73.
echo #################################   Um eine Datei auszuw„hlen 
74.
echo # Hier kannst du deine Notitzen #   musst du nur den Dateinamen 
75.
echo # einsehen.                     #   eingeben und mit [Enter] 
76.
echo #################################   best„tigen. 
77.
echo. 
78.
tree "%userprofile%\documents\Notitzen" /f /a 
79.
set /p show="\> 
80.
cls 
81.
title :::%show%::: 
82.
:: Hier merkt man bereits schmerzhaft, dass ich die Anwendung von For Schleifen noch nicht so behersche, wie ich es gerne hätte.. und genau hier benötige ich Hilfe. 
83.
FOR /R "%userprofile%\Notitzen\" %%i DO type %show% 
84.
type "%show%" 
85.
pause
Der User speichert Strings zunächst in eine temporäre Datei. Falls er diese dann speichern möchte verschiebt sich der Inhalt von der temporären Datei in eine statische mit dem gewünschten Namen des Users. Diese Datei wird dann noch in einen Ordner mit dem Erstellungs Datum verschoben. Falls der User an dem Tag bereits mehrere erstellt hat, wandern alle gleich datierten in den selben Ordner.

Nun das eigentliche Problem:

Bei :loadnote Möchte ich nun erreichen, dass die Batch die Ordnerstruktur von "%userprofile%\Notitzen\" komplett nach der in Variable %show% deklarierten Datei durchsucht. Und jene dann, mit dem Befehl "type", in der Batch wiederspiegelt.

Ich hoffe doch ich habe mich sachlich und klar ausgedrückt, für jeden konstruktiven Beitrag gilt mein Dank.

Mit freundlichen Grüssen
CrasherX
Mitglied: 16568
08.03.2013 um 07:16 Uhr
Da is ein Schreibfehler drin...?


Lonesome Walker
Bitte warten ..
Mitglied: bastla
08.03.2013, aktualisiert um 17:36 Uhr
Hallo CrasherX und willkommen im Forum!

Abgesehen von Deiner etwas eigenwilligen Schreibweise des Wortes "Notiz" - was soll denn geschehen, wenn die Datei nicht gefunden wird?

Wenn Du
for /f "delims=" %%i in ('dir /s/b/a-d "%userprofile%\Notitzen\%show%" 2^>nul') do type "%%i"
verwendest (die Zeile 84 ist natürlich unnötig), wird für nicht gefundene Dateien einfach nix passieren ...

Grüße
bastla
Bitte warten ..
Mitglied: 16568
08.03.2013 um 17:48 Uhr
@bastla:

Das meinte ich noch nicht mal, guckst Du mal GENAU...

01.
23.	)  
02.
24.if "%newnote1%"=="%loadn%" (  
03.
25.	goto :loadnet  
04.
26.	)
Was könnte DA wohl falsch sein...


Lonesome Walker
Bitte warten ..
Mitglied: bastla
08.03.2013 um 17:53 Uhr
Hallo LSW!

Yep - das macht's nicht besser ...

Grüße
bastla
Bitte warten ..
Mitglied: CrasherX
08.03.2013 um 19:06 Uhr
Danke schonmal für eure Hilfe. Es funktioniert soweit so gut. Jetzt möchte ich bloss noch, dass die Schleife auch die Unterordner mit einbezieht um darin die Datei zu suchen.

@Lonesome Walker:

01.
set saven=save.note  
02.
set loadn=load.note  
03.
set delen=dele.note 
String: save.note wird in Variable %saven% gespeichert.
Ich weiss, dass dies Befehle unnötig sind, da ich einfach den String(save.note) in " und " setzen könnte. Aber das ist jedermanns Sache.

01.
@echo off 
02.
set /p string="> 
03.
if "%string%"=="save.note" ( 
04.
goto :saven 
05.
)
Die if abfragen sind extra in Klammern, denn nur nachfolgend auflisten lässt das Skript abschmieren, da kein else deklariert wird. Die zwei Klammern sind weniger Code, als unter jeder if-Abfrage noch zusätzlich ein if not Folgebefehl oder eine noch grössere Klammerstruktur mit ettlichen else statements... Denn es soll ja lediglich nach der if Schleife die zwei anderen if Schleifen ablaufen.
01.
if "%string%"=="save.note" goto :saven 
02.
if not %"string"=="save.note" goto :next
Danke euch
Bitte warten ..
Mitglied: bastla
08.03.2013 um 19:20 Uhr
Hallo CrasherX!
Jetzt möchte ich bloss noch, dass die Schleife auch die Unterordner mit einbezieht um darin die Datei zu suchen.
Da ja "dir /s" verwendet wird, macht sie das schon ...
Die if abfragen sind extra in Klammern, denn nur nachfolgend auflisten lässt das Skript abschmieren, da kein else deklariert wird.
Kann ich mir nicht vorstellen; außerdem: Wozu gibt es eigentlich den gleichen Ablauf dreimal (mit %newnote1%, %newnote2% und %newnote3%)?

Zeile 53 sollte jedenfalls vor Zeile 51 (und als Kopie auch vor Zeile 70) stehen, und der Code für das Löschen sieht auch noch etwas unausgereift aus .
LSW hatte mit seinem Hinweis übrigens konkret die Zeile 25, und nicht Deine Variablen gemeint.

Grüße
bastla
Bitte warten ..
Mitglied: CrasherX
08.03.2013 um 19:29 Uhr
Leider funktioniert dies bei mir nicht. Ich kann nur Dateien aus dem Rootverzeichniss auslesen.

Bei den verschiedenen %newnote%'s handelt es sich um drei Eingaben. In je eine Zeile... 1. Zeile = %newnote1% 2. Zeile = %newnote2% etc.

Oh O.o den Schreibfehler habe ich völlig übersehen. Danke an LSW
Bitte warten ..
Mitglied: bastla
08.03.2013 um 20:03 Uhr
Hallo CrasherX!
Ich kann nur Dateien aus dem Rootverzeichniss auslesen.
Du kannst den "dir"-Befehl ja einfach testen, indem Du in einer CMD-Shell
dir /s/b/a-d "%userprofile%\Notitzen\Dateiname"
eingibst ...
Warum willst Du genau 3 Zeilen eingeben lassen? Es wäre mE doch sinnvoller, den Programmteil nur einmal zu verwenden und dem Anwender die Entscheidung zu überlassen ...

Grüße
bastla
Bitte warten ..
Mitglied: CrasherX
08.03.2013 um 20:10 Uhr
Wie meinst du den das jetzt? In deinem Dir befehl wird nur nach einer bestimmten Datei in einem Bestimmten Verzeichnis gesucht.

Dam User bleibt je die Wahl... Er kann durch 2 Befehle (save.note, del.note) Die eingegebenen Daten bereits ab der ersten Zeile Speichern, oder auch nach der 2. Zeile, das eingegebene resseten und die Notitz erneut verfassen.
Bitte warten ..
Mitglied: bastla
08.03.2013 um 20:51 Uhr
Hallo CrasherX!
In deinem Dir befehl wird nur nach einer bestimmten Datei in einem Bestimmten Verzeichnis gesucht.
Ist das eine Vermutung oder das Ergebnis Deines Tests?

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

Batch bestimmte Dateien verschieben ohne Ordnerstruktur

gelöst Frage von OOmatrixOOBatch & Shell14 Kommentare

Hallo. Ich möchte aus mehreren Ordnern und Unterordnern bestimmte Dateien in ein anderes Verzeichnis verschieben. Habe schon dies probiert: ...

Datenbanken

EcoDMS - Ordnerstruktur nicht anzeigen lassen

Frage von geromaDatenbanken10 Kommentare

Hallo zusammen Ich hoffe, ich bin hier richtig. Folgende Ausgangssituation. Mein Kollege und ich sind zurzeit in Gründung eines ...

Batch & Shell

Ordnerstruktur lesen, Dateien - Neue Ordnerstruktur

gelöst Frage von internet2107Batch & Shell7 Kommentare

Ich verzweifle etwas an folgender Sache. Ich habe eine vorgebene Ordnerstruktur, in der sich Dateien befinden. Diese Dateien sollen ...

Batch & Shell

Ordnerstruktur durchsuchen und abgleichen ob ein Ordner vorhanden ist

gelöst Frage von Manzge90Batch & Shell13 Kommentare

Hallo Zusammen, ich bin in neu Anfänger in der Batch Programmierung und wollte Fragen ob es möglich ist per ...

Neue Wissensbeiträge
Windows 10

USB Maus und Tastatur versagen Dienst unter Windows 10

Erfahrungsbericht von hardykopff vor 21 StundenWindows 104 Kommentare

Da steht man ziemlich dumm da, wenn der PC sich wegen fehlender USB Tastatur und Maus nicht bedienen lässt. ...

Administrator.de Feedback
Update der Seite: Alles zentriert
Information von Frank vor 1 TagAdministrator.de Feedback18 Kommentare

Hallo User, die größte Änderung von Release 5.8 ist das Zentrieren der Webseite (auf großen Bildschirmen) und ein "Welcome"-Teaser ...

Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 1 TagHumor (lol)4 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 2 TagenGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Heiß diskutierte Inhalte
Windows Netzwerk
WSUS4 und Windows 10 Updates automatisch installieren
Frage von sammy65Windows Netzwerk15 Kommentare

Hallo miteinander, ich habe mit einen neuen WSUS Server aufgesetzt Server 2016 darauf einen aktuellen WSUS. Grund, wir stellen ...

Speicherkarten
Vergessliche USB-Sticks?
Frage von hanheikSpeicherkarten14 Kommentare

Ich habe in den letzten Tagen 500 USB-Sticks mit Bilddateien bespielt. Obwohl ich die Dateien mit größter Sorgfalt kopiert ...

Windows Netzwerk
Backup über WAN
Frage von petereWindows Netzwerk11 Kommentare

Hallo, ich muss aus einem entfernten WAN (synchrone 1Gbit) Daten sichern. Dabei handelt es sich sowohl um wenige große ...

Hyper-V
Hyper-V mit altem XEON-Server. Was ist falsch?
Frage von LollipopHyper-V11 Kommentare

Hallo Bin etwas frustriert. Kleinbetrieb, ca. 15 PC's, 2 Stk. Server mit einigen virtuellen PC's für Fernwartung, VaultServer für ...