online 1
gast (50)

/ Forum / Anwendungen(Java,C++...)

Anwendungen(Java,C++...)Anwendungen(Java,C++...)

Fragevon Paulo87 vom 20.09.2019, 08:41 Options

Batch-Programmierung: Dateinamen mit Variable versehen

Hallo!

Ich habe folgendes Problem bei der Batch-Programmierung:
In einem Ordner und diversen Unterordnern befinden sich mehrere Dateien mit dem Namen "1.tif".
Diese Dateien sollen nun in ein Verzeichnis "C:\TIF" verschoben werden. Da die Dateien aber alle den gleichen Dateiname haben sollen sie umbenannt werden in "1(1).tif", "1(2)".tif usw.

Der Programmcode sieht bisher so aus:
Zitat:
md C:\TIF

FOR /R %%I IN (*.tif) DO MOVE %%I C:\TIF


Vielen Dank für eure Hilfe!

Paulo


Antwort schreiben

Antwort 1 von kicia vom 20.09.2019, 11:23 Options

Meine Methode ist nicht sehr kompakt, funktioniert aber:
Folgenden Code in eine Datei mit der Endung .JS kopieren,
rechtsklick drauf und "öffnen".
("C:\\DeinOrdner" muss natürlich ersetzt werden)

var fso = new ActiveXObject("Scripting.FileSystemObject");

getFiles("C:\\DeinOrdner");

function getFiles(fld)
{
	var folder  = fso.getFolder(fld);
	var files   = new Enumerator(folder.Files);
	var folders = new Enumerator(folder.SubFolders);
	var Counter = 0;

	for (; !files.atEnd(); files.moveNext())
	{
		if(files.item().name == "1.tif")
		{
			Counter++;
			// files.item().copy("h:\\temp\\bild_" + Counter.toString() +  ".tif");
			files.item().move("h:\\temp\\bild_" + Counter.toString() +  ".tif");
		}
	}

	for (; !folders.atEnd(); folders.moveNext())
	{
		getFiles(folders.item().path);
	}
}

Antwort 2 von Paulo87 vom 20.09.2019, 11:56 Options

Danke für den Vorschlag, aber es kommt ein Fehler:

Zeile 18
Zeichen 10
Die Datei ist bereits vorhanden

Antwort 3 von kicia vom 20.09.2019, 12:06 Options

ups, tut mir leid. Ich hoffe es ist nichts kaputt gegangen.

"var Counter = 0;" muss natürlich außerhalb der "function getFiles(fld)" stehen, sonst wird er bei jedem neuen Verzeichnis wieder auf 0 gesetzt.
Also:

var fso = new ActiveXObject("Scripting.FileSystemObject");
var Counter = 0;

getFiles("C:\\DeinOrdner");

function getFiles(fld)
{
	var folder  = fso.getFolder(fld);
	var files   = new Enumerator(folder.Files);
	var folders = new Enumerator(folder.SubFolders);

	for (; !files.atEnd(); files.moveNext())
	{
...

usw. (Das folgende bleibt gleich)

Antwort 4 von Paulo87 vom 20.09.2019, 12:16 Options

Perfekt. Vielen Dank!!!

Ähnliche Themen

Batch aktuelles Verzeichnis
Rudi0815  12.09.2007 - 289 Hits - 1 Antwort

Programmaufruf mit Batch-Datei
Martina  09.11.2007 - 370 Hits - 5 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 01:23:17 2026