Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Per Batch Regedit Wert auslesen und als Dateinname verwenden

Frage Entwicklung Batch & Shell

Mitglied: WS2003User

WS2003User (Level 1) - Jetzt verbinden

01.05.2010, aktualisiert 21:59 Uhr, 5590 Aufrufe, 6 Kommentare

Hallo Administrator Gemeinde!

Nach einer Suche von ca. 3 Stunden hoffe ich nun hier Hilfe zu bekommen.

Bin auf viele Lösungsansätze gestoßen die haupsächlich auf set & for basieren aber alle nicht funktionieren bzw. mein Problem nicht lösen.

Möchte einen REG_SZ Wert aus dem Registrierungseditor auslesen und diesen als Dateinamen verwenden.

Das Batchskript sollte folgendermaßen arbeiten:

Wert in *.txt bzw. *.bat importieren zu kopierende Datei umbenennen und unter einen anderen Pfad speichern.

Mein Problem besteht darin daß ich bis jetzt nur mehrere Werte aus dem Registrierungseditor in ein *.txt importiert bekomme und auch keine Lösung gefunden habe diesen besagten Wert aus eine bestimmten Zeile des Dokuments auszulesen und als Dateiname zu verwenden.

Befehle wie xcopy usw. sind mir bekannt nur mit for & set habe ich so meine schwierigkeiten.

Währe sehr dankbar wenn mir da jemand ein gutes beispiel oder vielleicht sogar die Lösung aufzeigen könnte !

Mit freundlichen Grüßen WS2003User
Mitglied: LotPings
01.05.2010 um 22:37 Uhr
Hallo,

solange du so wenig konkret bleibst, kann man as auch selbst nur tun, der Aufbau einer For /f Schleife hängt halt von den exakten Randbedingungen ab.
Meistens ist ab Win XP die Arbeit mit Reg.exe einer Exportdatei aus Regedit vorzuziehen.
Gib mal, ggfs neutralisierte aber im Schlüssel und Daten vergleichbare, Daten an.

Gruß
LotPings

Edit: Hier ein einfacher neutraler Batch der bei Values ohne Leerzeichen allgemein funktionieren sollte:

01.
:: GetRegKey.cmd ::::::::::::::::::::::::::::::::::::::::: 
02.
@Echo off 
03.
SET Key="HKEY_CURRENT_USER\Software\Skype\Phone" 
04.
Set VAL=SkypePath 
05.
FOR /F "Tokens=2*" %%A IN ( 
06.
  'Reg Query %Key% /V %Val% ^|Find /I "%Val%"' 
07.
    ) DO Set "Data=%%B" 
08.
Echo Key=%Key% 
09.
Echo %Val%=%Data% 
10.
goto :Eof
Bitte warten ..
Mitglied: WS2003User
01.05.2010 um 23:22 Uhr
Nabend,

nun gut ich versuche es mal etwas besser zu beschreiben.

Also ich möchte eine bestimmte Zeichenfolgen unter HKEY_CURRENT_USER\Control Panel\Desktop als Dateinamen verwenden.

Diese exportiere ich nun in die Test.txt mit dem Befehl: Regedit /e c:\test.txt "HKEY_CURRENT_USER\Control Panel\Desktop" .
Die eig. Zeichenfolge finde nun in der Zeile 39 allerdings sieht es folgerndermaßen aus:

"ConvertedWallpaper"="W:\\Daten\\%username%\\Eigene Bilder\\100_1187.JPG"

Und nun möchte ich für die zu kopierende Datei nur den Namen: 100_1187.jpg bzw. nur 100_1187 daraus extrahieren und als Dateinamen
beim kopieren verwenden.

Edit: Das Beispiel hat mich schon etwas weiter geholfen aber aber mein Ziel ist noch nedd erreicht..

Danke schon mal im vorraus für die schnellen antworten.

Mit freundlichen Grüßen WS2003User
Bitte warten ..
Mitglied: bastla
01.05.2010 um 23:35 Uhr
Hallo WS2003User und willkommen im Forum!

Sollte dann mit Zerlegung des Pfades etwa so gehen:
for /f "tokens=2*" %%i in ('reg query "HKEY_CURRENT_USER\Control Panel\Desktop" /v "ConvertedWallpaper"') do set "Name=%%~nj"
Grüße
bastla
Bitte warten ..
Mitglied: LotPings
02.05.2010 um 00:05 Uhr
Hallo bastla, auch noch wach?

Ja so ein 1-Zeiler ist schneller

Hier was mit didaktischer Erweiterung:
01.
@Echo off 
02.
SET Key="HKEY_CURRENT_USER\Control Panel\Desktop" 
03.
Set Val=Wallpaper 
04.
FOR /F "Tokens=2*" %%A IN ( 
05.
  'Reg Query %Key% /V %Val% ^|Find /I "%Val%"' 
06.
) DO if exist "%%B" ( 
07.
  Echo FullName : %%~fB 
08.
  Echo Laufwerk : %%~dB 
09.
  Echo Pfad     : %%~pB 
10.
  Echo Name     : %%~nB 
11.
  Echo Extension: %%~xB 
12.
  Echo ShortName: %%~sB 
13.
  Echo Attribute: %%~aB 
14.
  Echo DatumZeit: %%~tB 
15.
  Echo Groesse  : %%~zB 
16.
)
Bitte warten ..
Mitglied: bastla
02.05.2010 um 09:17 Uhr
@LotPings
Ja so ein 1-Zeiler ist schneller
Sorry - ich wusste nicht, ob/dass Du noch "an Board" warst, drum habe ich das mal (ganz ohne edukativen Mehrwert ) zu finalisieren versucht ...

Grüße
bastla
Bitte warten ..
Mitglied: WS2003User
02.05.2010 um 13:11 Uhr
Hallo Gemeinde,

erstmal ein großes dankeschön für die schnellen Antworten an euch beide !

Hatte mir das ganze nicht so einfach vorgestellt !

Werde mich jetzt mal bemühen die FOR Funktion anhand der Beispiele zu verstehen da sich doch eine Menge damit realisieren lässt und dann das komplette
Batchskript mit einer Beschreibung meinens Problems mal posten.


Mit freundlichen Grüßen:

WS2003User
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst Powershell Ordnername auslesen und verwenden (3)

Frage von zamsi7 zum Thema Batch & Shell ...

Batch & Shell
Per Batch Textdatei Spaltenweise auslesen nochmal weil ich dumm bin (9)

Frage von PinkFLuffyUnicorn zum Thema Batch & Shell ...

Batch & Shell
Batch Textdatei Spaltenweise auslesen (7)

Frage von PinkFLuffyUnicorn zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (34)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...