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

Mehrere Werte in Variable

Frage Entwicklung Batch & Shell

Mitglied: deit99

deit99 (Level 1) - Jetzt verbinden

27.10.2009, aktualisiert 23:07 Uhr, 3750 Aufrufe, 9 Kommentare

Hallo,

ich habe ein Batch Script mit dem Verzeichnisse angelegt und Dateien kopiert werden (Achtung: Abteilung1 und Abteilung2 haben verschiedene Ordner/Dateien):
01.
REM Abteilung1 
02.
md d:\daten\MUELLER\neu 
03.
copy c:\temp\datei.html d:\daten\MUELLER\neu 
04.
 
05.
md d:\daten\MAYER\neu 
06.
copy c:\temp\datei.html d:\daten\MAYER\neu 
07.
 
08.
 
09.
 
10.
REM Abteilung2 
11.
md d:\daten\SCHMIDT\neu 
12.
copy c:\pool\datei2.html d:\daten\SCHMIDT\neu 
13.
 
14.
md d:\daten\VOGEL\neu 
15.
copy c:\pool\datei2.html d:\daten\VOGEL\neu

Wie kann ich das Script vereinfachen das beispielsweise die Usernamen (MUELLER,MAYER,SCHMIDT,VOGEL) in Variablen stehen, da in Zukunft noch mehr dazukommt?

In etwa so:

VAR1 = MUELLER,MAYER,...
VAR2= SCHMIDT, VOGEL,...

REM Abteilung1
md d:\daten\VAR1\neu
copy c:\temp\datei.html d:\daten\VAR1\neu

REM Abteilung2
md d:\daten\VAR2\neu
copy c:\pool\datei2.html d:\daten\VAR2\neu


Danke schonmal!
Mitglied: Snowman25
27.10.2009 um 15:47 Uhr
batchvariablen werden in Prozentzeichen benutzt und per SET-Befehl festgelegt.
z.B.:

SET abteil1=MUELLER
md D:\Daten\%abteil1%\neu
copy C:\temp\datei.html D:\Daten\%abteil1%\neu

hier ließe sich noch kürzen, falls das ganze länger mehrere Befehle beinhaltet:

SET abteil1=MUELLER
SET src=C:\temp\datei.html
SET dir=D:\Daten\%abteil1%\neu
md %dir%
copy %src% %dir%


Wenn du abteil1 jetzt noch aus einem Textfile beziehst, dann hast du alles
Bitte warten ..
Mitglied: TsukiSan
27.10.2009 um 16:59 Uhr
oder so:
01.
Namen(0,0,0,0) 
02.
Namen(0,1,0,0) = Mueller 
03.
Namen(0,2,0,0)=Meier 
04.
'etc
Gruß
Tsuki
Bitte warten ..
Mitglied: Snowman25
27.10.2009 um 17:03 Uhr
das ist aber kein Windowsbatch...
Bitte warten ..
Mitglied: 60730
27.10.2009 um 17:50 Uhr
Servus,

zum einen - Formatierungshilfe die Code Blöcke benutzen
zum anderen:
01.
for /d %%a in (mueller,meier,schultze) do echo %%a
oder genauer:

01.
for /d %%a in (mueller,meier,schultze) do ( 
02.
               if not exist "d:\daten\%%a\neu" md "d:\daten\%%a\neu" 
03.
               copy c:\temp\datei.html d:\daten\%%a\neu\" 
04.
               )
Gruß
Bitte warten ..
Mitglied: bastla
27.10.2009 um 22:59 Uhr
... oder falls es auch ein Oneliner sein darf:
for %%a in (mueller,meier,schultze) do xcopy c:\temp\datei.html "d:\daten\%%a\neu\">nul
Wenn "noch mehr dazukommt" wäre es vielleicht auch eine Option, (wie von Snowman25 bereits angesprochen) die Namen in einer Textdatei zu hinterlegen (jeder Name in einer eigenen Zeile) und diese Datei auszulesen:
for /f "delims=" %%a in (D:\Namensliste1.txt) do xcopy c:\temp\datei.html "d:\daten\%%a\neu\">nul
Grüße
bastla
Bitte warten ..
Mitglied: deit99
28.10.2009 um 08:16 Uhr
Vielen Dank für die zahlreichen Antworten.

So funktioniert es:
01.
for /d %%a in (mueller,meier,schultze) do (  
02.
               if not exist "d:\daten\%%a\neu" md "d:\daten\%%a\neu"  
03.
               copy c:\temp\datei.html d:\daten\%%a\neu\"  
04.
               )
Bitte warten ..
Mitglied: bastla
28.10.2009 um 08:25 Uhr
... wobei (nur der Ordnung halber) anzumerken wäre, dass die Option "/d" bei "for" hier nicht benötigt wird.

Grüße
bastla
Bitte warten ..
Mitglied: 60730
28.10.2009 um 08:36 Uhr
Zitat von bastla:
... wobei (nur der Ordnung halber) anzumerken wäre, dass ..

wenn der Tmo deinen vorherigen Beitrag gelesen hätte, er seinen nicht geschrieben

dafür, dass ichs Blind am Mac getippt habt

Gruß
Bitte warten ..
Mitglied: bastla
28.10.2009 um 08:51 Uhr
@Timo
dafür, dass ichs Blind am Mac getippt hab
... gebührt aber jedenfalls ein Sonderlob.

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Powershell - Werte in Variable durch Schleife erweitern bzw. ändern (5)

Frage von ralfkausk zum Thema Batch & Shell ...

XML
gelöst XML - XSLT Formatierung mehrere verschiedene Werte (13)

Frage von chrisen zum Thema XML ...

Peripheriegeräte
Tastatur für mehrere Geräte mit USB Dongle und Bluetooth

Frage von hannsgmaulwurf zum Thema Peripheriegeräte ...

Neue Wissensbeiträge
Google Android

Cyanogenmod alternative Downloadquelle

(5)

Tipp von Lochkartenstanzer zum Thema Google Android ...

Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(5)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Statische Routen mit Shorewall, ISC-DHCP Server konfigurieren für Android Devices (25)

Frage von terminator zum Thema LAN, WAN, Wireless ...

Server
gelöst Wie erkennen, dass nur deutsche IPs Zugang zu einer Website haben? (22)

Frage von Coreknabe zum Thema Server ...

Hardware
16-20 Port POE Switch mit VLAN (19)

Frage von thomasreischer zum Thema Hardware ...

Windows Server
Exchange HyperV Prozessorlast (18)

Frage von theoberlin zum Thema Windows Server ...