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

verschachtelte .bat nur einmal aufrufbar?

Frage Entwicklung Batch & Shell

Mitglied: YeastMaster

YeastMaster (Level 1) - Jetzt verbinden

10.06.2008, aktualisiert 19:52 Uhr, 5782 Aufrufe, 3 Kommentare

Hallo!
Ich bin gerade dabei, ein Skript zu basteln, welche mir mittels batch-Dateien das Umbenennen von Dateien erleichtern soll. Als Ausgangsmaterial habe ich zwei Dateilisten (.txt), welche den Vorher- und Nachher-Namen enthalten. Das Skript soll mir in eine neue Datei den Befehl "ren Vorher Nachher" reinschreiben, wobei die Namen aus gleichen Zeilen kommen sollten. Dies hab ich im Großen und Ganzen schon geschafft, jedoch habe ich das Problem, dass ich die batch Datei, welche das macht (und der als Variable die Zeilennummer übergeben wird) nur einmal aufgerufen werden kann.

Hier der Code:

01.
@echo off & setlocal 
02.
set filelist=filelist.txt 
03.
set genelist=genelist.txt 
04.
set /a count=1 
05.
set /a countr=1 
06.
set /a linenbr=%1 
07.
set /a lastline=10 
08.
 
09.
  FOR /f %%a IN (%filelist%) do set line=%%a & call :counter 
10.
   Goto :next 
11.
    :counter 
12.
     if %count%==%linenbr% set file=%line% 
13.
    set /a count+=1 
14.
    goto :eof 
15.
  :next 
16.
 
17.
  FOR /f %%b IN (%genelist%) do set line2=%%b & call :counter2 
18.
   Goto :next2 
19.
    :counter2 
20.
     if %countr%==%linenbr% set gene=%line2%  
21.
    set /a countr+=1 
22.
   goto :eof 
23.
   :next2 
24.
 
25.
echo ren %file% %gene% >> rename.bat
Aufgerufen wir das Ganze folgendermaßen:

createlist.bat 34

Wobei 34 für die beiden Einträge aus den Zeilen, die verknüpft werden sollen, steht. So ein einzelner Aufruf funktioniert tadellos.
Ich möchte das jedoch nicht nur mit einer Zeile machen, sondern mit allen 96.
Eine Schleife (z.b. in einer anderen Datei) bietet sich an, oder eine einfache Aneinanderreihung:

createlist.bat 1
createlist.bat 2
createlist.bat 3
usw.

Das Problem ist nun, dass immer nach dem Ersten Durchlauf abgebrochen wird (egal ob mit Schleife oder so)... Wenn ich die Befehle händisch hintereinander eingebe, funktioniert es auch...
Warum ist das so? bzw. Was muss ich ändern, damits funktioniert???

Liebe Grüße aus Österreich,

Ewald
Mitglied: 60730
10.06.2008 um 17:42 Uhr
Hi,

hast du schon mal folgendes Probiert

Tryout.cmd
01.
Start /wait createlist.bat 1 
02.
Start /wait createlist.bat 2 
03.
Start /wait createlist.bat 3
So wartet die startende batch solange mit dem starten der Createlsit - bis der vorherige Lauf abgearbeitet ist.
Bitte warten ..
Mitglied: YeastMaster
10.06.2008 um 17:52 Uhr
Hmmm....

gute Idee eigentlich, jedoch muss ich nach jedem Durchlauf das vorherige Fenster schließen und auf "batchvorgang abbrechen? (J/N)" antworten.

*edit*

Wenn ich in die aufgerufene Datei am Schluss den Befehl "exit" reinschreibe, dann funkts!!!

Danke für die schnelle Hilfe,

lG Ewald
Bitte warten ..
Mitglied: miniversum
10.06.2008 um 19:52 Uhr
01.
call createlist.bat 1 
02.
call createlist.bat 2 
03.
call createlist.bat 3
so auch?
Bitte warten ..
Neuester Wissensbeitrag
Off Topic

"Ich habe nichts zu verbergen"

(2)

Erfahrungsbericht von FA-jka zum Thema Off Topic ...

Ähnliche Inhalte
Heiß diskutierte Inhalte
Linux Netzwerk
gelöst DHCP vergibt keine Adressen (32)

Frage von Maik82 zum Thema Linux Netzwerk ...

CPU, RAM, Mainboards
Kaufberatung für mind. 8 verschiedene HighEnd-Mainboards (20)

Frage von yperiu zum Thema CPU, RAM, Mainboards ...

Apache Server
gelöst Lets Encrypt SSL mit Apache2 (20)

Frage von banane31 zum Thema Apache Server ...

Hardware
gelöst PCI-Express-Adapterfrage (14)

Frage von DerWoWusste zum Thema Hardware ...