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, 5799 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 ..
Ähnliche Inhalte
Windows Server
SBS 2011 System Volume Information auf einmal sehr groß (6)

Frage von DLJOKE zum Thema Windows Server ...

Batch & Shell
XML in CSV bat batch powershell (9)

Frage von nolle99 zum Thema Batch & Shell ...

Windows 10
Logon.bat - Access Denied (5)

Frage von HansWurstAugust zum Thema Windows 10 ...

Neue Wissensbeiträge
Heiß diskutierte Inhalte
Windows Systemdateien
NTFS und die Defragmentierung (26)

Frage von WinLiCLI zum Thema Windows Systemdateien ...

LAN, WAN, Wireless
Zwei Subnetze mit je eigenem Router und Internetzugang verbinden (18)

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

Windows Server
WIndows Server 2016 core auf dem Intel NUC NUC5i5RYK i5 5250U (17)

Frage von IxxZett zum Thema Windows Server ...