Ordnerstruktur auslesen und in Textdatei speichern
Hallo Forummitglieder,
ich habe eine Problem und zwar sollen alle Ordner (keine Dateien) in einer text-Datei angegeben werden. Es müsste also eine Abfrage erstellt werden, die die gesamte Ordnerstruktur auf unserem Fileserver ausliest und in einer Textdatei speichert.
Befehle wie DIR oder TREE bringen nicht viel, da diese zusatzinformationen mitbringen, die aufwendig herausgefiltert werden müssten.
Hat jmd eine Idee mit welchem Befehl man das am besten machen könnte, oder mit welchem Programm??
Mit freundlichen Grüßen
Tobi
ich habe eine Problem und zwar sollen alle Ordner (keine Dateien) in einer text-Datei angegeben werden. Es müsste also eine Abfrage erstellt werden, die die gesamte Ordnerstruktur auf unserem Fileserver ausliest und in einer Textdatei speichert.
Befehle wie DIR oder TREE bringen nicht viel, da diese zusatzinformationen mitbringen, die aufwendig herausgefiltert werden müssten.
Hat jmd eine Idee mit welchem Befehl man das am besten machen könnte, oder mit welchem Programm??
Mit freundlichen Grüßen
Tobi
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 103631
Url: https://administrator.de/forum/ordnerstruktur-auslesen-und-in-textdatei-speichern-103631.html
Ausgedruckt am: 22.12.2024 um 20:12 Uhr
24 Kommentare
Neuester Kommentar
Ich habe ein ähnliches Problem, nur bei mir liestet er mir es falsch auf.
Verzeichnis auslesen:
Code:
REM Build transfer Template
echo open 127.0.0.1 > transfer.ftp
echo user >> transfer.ftp
echo password >> transfer.ftp
REM create root directory
echo mkdir test >> transfer.ftp
REM Build Directory Structure
for /f "tokens=1,2,3,4 delims=\" %%a in ('dir C:\test\transfer /ad /o /b /s') do @echo mkdir %%b\%%c\%%d >> transfer.ftp
REM create transfer list
for /f "tokens=1,2,3,4,5 delims=\" %%A in ('dir C:\test\transfer /a-d /o /b /s') do @echo send %%~pfB%%~pC%%C%%~pD%%D%%~pE%%E %%~B%%~pC%%C%%~pD%%D%%~pE%%E >> transfer.ftp
hier der erfolgreiche versuch:
echo quit >> transfer.ftp
echo by >> transfer.ftp
Das Resultat dieser Datei siehst so aus (Falsch):
open 127.0.0.1
user
password
mkdir test
mkdir test\transfer\test1
mkdir test\transfer\test2
send C:\test\test\test\transfer\test\test1\test\testdatei.txt test\test\transfer\test\test1\test\testdatei.txt
send C:\test\test\test\transfer\test\test2\test\a.rtf test\test\transfer\test\test2\test\a.rtf
send C:\test\test\test\transfer\test\test2\test\hallo yves.wav test\test\transfer\test\test2\test\hallo yves.wav
send C:\test\test\test\transfer\test\test2\test\testdatei1.wav test\test\transfer\test\test2\test\testdatei1.wav
quit
bye
Richtig aussehen sollte die Datei so:
open 127.0.0.1
user
password
mkdir test
mkdir test\transfer\test1
mkdir test\transfer\test2
send C:\test\test1\testdatei.txt
send C:\test\transfer\test2\a.rtf
send C:\test\transfer\test2\hallo yves.wav
send C:\test\transfer\test2\testdatei1.wav
quit
by
wo ist mein denkfehler, das er mir dies so komisch darstellt? Den so kann ich den fefehlt
ftp -s:xtrans.ftp
nicht ausführen, da er die dateien nicht findet, wäre toll, wenns gehen würde
Verzeichnis auslesen:
Code:
REM Build transfer Template
echo open 127.0.0.1 > transfer.ftp
echo user >> transfer.ftp
echo password >> transfer.ftp
REM create root directory
echo mkdir test >> transfer.ftp
REM Build Directory Structure
for /f "tokens=1,2,3,4 delims=\" %%a in ('dir C:\test\transfer /ad /o /b /s') do @echo mkdir %%b\%%c\%%d >> transfer.ftp
REM create transfer list
for /f "tokens=1,2,3,4,5 delims=\" %%A in ('dir C:\test\transfer /a-d /o /b /s') do @echo send %%~pfB%%~pC%%C%%~pD%%D%%~pE%%E %%~B%%~pC%%C%%~pD%%D%%~pE%%E >> transfer.ftp
hier der erfolgreiche versuch:
echo quit >> transfer.ftp
echo by >> transfer.ftp
Das Resultat dieser Datei siehst so aus (Falsch):
open 127.0.0.1
user
password
mkdir test
mkdir test\transfer\test1
mkdir test\transfer\test2
send C:\test\test\test\transfer\test\test1\test\testdatei.txt test\test\transfer\test\test1\test\testdatei.txt
send C:\test\test\test\transfer\test\test2\test\a.rtf test\test\transfer\test\test2\test\a.rtf
send C:\test\test\test\transfer\test\test2\test\hallo yves.wav test\test\transfer\test\test2\test\hallo yves.wav
send C:\test\test\test\transfer\test\test2\test\testdatei1.wav test\test\transfer\test\test2\test\testdatei1.wav
quit
bye
Richtig aussehen sollte die Datei so:
open 127.0.0.1
user
password
mkdir test
mkdir test\transfer\test1
mkdir test\transfer\test2
send C:\test\test1\testdatei.txt
send C:\test\transfer\test2\a.rtf
send C:\test\transfer\test2\hallo yves.wav
send C:\test\transfer\test2\testdatei1.wav
quit
by
wo ist mein denkfehler, das er mir dies so komisch darstellt? Den so kann ich den fefehlt
ftp -s:xtrans.ftp
nicht ausführen, da er die dateien nicht findet, wäre toll, wenns gehen würde
Hallo katze78 und willkommen im Forum!
Versuche es mit dem Ersetzen von
Wegen des beim "dir" verwendeten "/s" erhältst Du ohnehin bereits einen vollen Dateipfad ...
Grüße
bastla
Versuche es mit dem Ersetzen von
for /f "tokens=1,2,3,4,5 delims=\" %%A in ('dir C:\test\transfer /a-d /o /b /s') do @echo send %%~pfB%%~pC%%C%%~pD%%D%%~pE%%E %%~B%%~pC%%C%%~pD%%D%%~pE%%E >> transfer.ftp
durchfor /f "tokens=" %%a in ('dir C:\test\transfer /a-d /o /b /s') do echo send %%a >> transfer.ftp
Grüße
bastla
Hallo katze78!
Dein Batch sollte derzeit etwa so aussehen:
und dann auch entsprechend in die "transfer.ftp" schreiben (soferne es in bzw unterhalb von "C:\test\transfer" Dateien gibt).
Wenn Du meine vorgeschlagene Schleife direkt an der Eingabezeile testen willst, kannst Du das so machen:
Damit sollten dann die entsprechenden "send"-Zeilen angezeigt werden.
Grüße
bastla
[Edit] Sorry, ist anscheinend noch viel zu früh heute ...
Natürlich muss es anstelle von "tokens" richtig "delims" heißen - habe das korrigiert.
[/Edit]
Dein Batch sollte derzeit etwa so aussehen:
REM Build transfer Template
echo open 127.0.0.1 > transfer.ftp
echo user >> transfer.ftp
echo password >> transfer.ftp
REM create root directory
echo mkdir test >> transfer.ftp
REM Build Directory Structure
for /f "tokens=1,2,3,4 delims=\" %%a in ('dir C:\test\transfer /ad /o /b /s') do @echo mkdir %%b\%%c\%%d >> transfer.ftp
REM create transfer list
for /f "delims=" %%a in ('dir C:\test\transfer /a-d /o /b /s') do echo send %%a >> transfer.ftp
echo quit >> transfer.ftp
echo by >> transfer.ftp
Wenn Du meine vorgeschlagene Schleife direkt an der Eingabezeile testen willst, kannst Du das so machen:
for /f "delims=" %a in ('dir C:\test\transfer /a-d /o /b /s') do @echo send %a
Grüße
bastla
[Edit] Sorry, ist anscheinend noch viel zu früh heute ...
Natürlich muss es anstelle von "tokens" richtig "delims" heißen - habe das korrigiert.
[/Edit]
Vermutlich enthält deine Teststruktur noch keine Dateien in den Unterverzeichnissen?
Dann musst du noch beachten, dass du die Dateien nur dann hochschieben kannst, wenn du dich (bei FTP) bereits in dem entsprechenden Pfad befindest. Du musst also vorher noch ein cd ausführen, sonst landen die alle dort, wo du dich im FTP-Verzeichnis momentan befindest.
Dann musst du noch beachten, dass du die Dateien nur dann hochschieben kannst, wenn du dich (bei FTP) bereits in dem entsprechenden Pfad befindest. Du musst also vorher noch ein cd ausführen, sonst landen die alle dort, wo du dich im FTP-Verzeichnis momentan befindest.
Dann stimmt möglicherweise was nicht mit den Dateien. Sind die evtl. versteckt?
ja, ich habe beide deine forschläge gemacht, geht aber nicht. "bastla schreibt am 24.05.2009 um 11:01:29 Uhr: "
die längste datei ist 11Zeichen lang, eine davon hat ein leerschlag darin. "blablanick schreibt am 24.05.2009 um 11:04:51 Uhr: "
ist es windows abhängig der befehl, das es bei euch geht und bei mir nicht?
die längste datei ist 11Zeichen lang, eine davon hat ein leerschlag darin. "blablanick schreibt am 24.05.2009 um 11:04:51 Uhr: "
ist es windows abhängig der befehl, das es bei euch geht und bei mir nicht?
überschnitten.
Hallo katze78!
Was wird angezeigt, wenn Du an der Kommandozeile folgenden Befehl eingibst?
Solltest Du damit die Auflistung der gewünschten Dateien erhalten, müsste auch
die entsprechenden "send"-Zeilen (auf dem Bildschirm) erzeugen (wobei es im Hinblick auf die Leerzeichen für die weitere Verwendung besser wäre, das letzte "%a" unter Anführungszeichen zu setzen).
Grüße
bastla
[Edit] @78632: Danke für die Unterstützung ... [/Edit]
Was wird angezeigt, wenn Du an der Kommandozeile folgenden Befehl eingibst?
dir C:\test\transfer /a-d /o /b /s
for /f "delims=" %a in ('dir C:\test\transfer /a-d /o /b /s') do @echo send %a
Grüße
bastla
[Edit] @78632: Danke für die Unterstützung ... [/Edit]
einen halben erfolg habe ich.
speichere ich diese datei (batch) auf das C: direkt wird meine liste korekt erstellt
REM FTP Liste Löschen
del ftpliste.ftp
REM FTP Liste erstellen
echo open 127.0.0.1>> ftpliste.ftp
echo user>> ftpliste.ftp
echo pass>> ftpliste.ftp
REM create root directory
echo mkdir test >> ftpliste.ftp
REM Build Directory Structure
for /f "tokens=1,2,3,4 delims=\" %%a in ('dir C:\test /ad /o /b /s') do @echo mkdir %%b\%%c\%%d >> ftpliste.ftp
REM create transfer list
for /f "tokens=1,2,3,4,5 delims=\" %%A in ('dir C:\test /a-d /o /b /s') do @echo send %%~pfB%%~pC%%C%%~pD%%D%%~pE%%E %%~B%%~pC%%C%%~pD%%D%%~pE%%E >> ftpliste.ftp
echo bye>> ftpliste.ftp
===
so sieht sie aus, wenn der obere BATCH auf dem C: gespeichert ist.
open 127.0.0.1
user
pass
mkdir test
mkdir test\transfer\
mkdir test\transfer\test1
mkdir test\transfer\test2
send C:\test\auflistung.cmd test\auflistung.cmd
send C:\test\ausfhrung.bat test\ausfhrung.bat
send C:\test\falsch.ftp test\falsch.ftp
send C:\test\ftp via batch.zip test\ftp via batch.zip
send C:\test\Kopie von auflistung.cmd test\Kopie von auflistung.cmd
send C:\test\richtig.ftp test\richtig.ftp
send C:\test\transfer.ftp test\transfer.ftp
send C:\test\transfer1.ftp test\transfer1.ftp
send C:\test\transfer2.ftp test\transfer2.ftp
send C:\test\transfer3.ftp test\transfer3.ftp
send C:\test\transferx.ftp test\transferx.ftp
send C:\test\u.txt test\u.txt
send C:\test\xtrans.ftp test\xtrans.ftp
send C:\test\zauflistung.txt test\zauflistung.txt
send C:\test\ztransfer.ftp test\ztransfer.ftp
send C:\test\transfer\test1\testdatei.txt test\transfer\test1\testdatei.txt
send C:\test\transfer\test2\a.rtf test\transfer\test2\a.rtf
send C:\test\transfer\test2\hallo yves.wav test\transfer\test2\hallo yves.wav
send C:\test\transfer\test2\testdatei1.wav test\transfer\test2\testdatei1.wav
bye
===
speichere ich es zb auf den Desktop die BATCH datei, so wird diese so ausgelesen:
open 127.0.0.1
user
pass
mkdir test
mkdir test\transfer\
mkdir test\transfer\test1
mkdir test\transfer\test2
send C:\Dokumente und Einstellungen\yves\Desktop\ftp\test\Dokumente und Einstellungen\yves\Desktop\ftp\auflistung.cmd test\Dokumente und Einstellungen\yves\Desktop\ftp\auflistung.cmd
send C:\Dokumente und Einstellungen\yves\Desktop\ftp\test\Dokumente und Einstellungen\yves\Desktop\ftp\ausfhrung.bat test\Dokumente und Einstellungen\yves\Desktop\ftp\ausfhrung.bat
send C:\Dokumente und Einstellungen\yves\Desktop\ftp\test\Dokumente und Einstellungen\yves\Desktop\ftp\falsch.ftp test\Dokumente und Einstellungen\yves\Desktop\ftp\falsch.ftp
send C:\Dokumente und Einstellungen\yves\Desktop\ftp\test\Dokumente und Einstellungen\yves\Desktop\ftp\ftp via batch.zip test\Dokumente und Einstellungen\yves\Desktop\ftp\ftp via batch.zip
send C:\Dokumente und Einstellungen\yves\Desktop\ftp\test\Dokumente und Einstellungen\yves\Desktop\ftp\Kopie von auflistung.cmd test\Dokumente und Einstellungen\yves\Desktop\ftp\Kopie von auflistung.cmd
send C:\Dokumente und Einstellungen\yves\Desktop\ftp\test\Dokumente und Einstellungen\yves\Desktop\ftp\richtig.ftp test\Dokumente und Einstellungen\yves\Desktop\ftp\richtig.ftp
send C:\Dokumente und Einstellungen\yves\Desktop\ftp\test\Dokumente und Einstellungen\yves\Desktop\ftp\transfer.ftp test\Dokumente und Einstellungen\yves\Desktop\ftp\transfer.ftp
send C:\Dokumente und Einstellungen\yves\Desktop\ftp\test\Dokumente und Einstellungen\yves\Desktop\ftp\transfer1.ftp test\Dokumente und Einstellungen\yves\Desktop\ftp\transfer1.ftp
send C:\Dokumente und Einstellungen\yves\Desktop\ftp\test\Dokumente und Einstellungen\yves\Desktop\ftp\transfer2.ftp test\Dokumente und Einstellungen\yves\Desktop\ftp\transfer2.ftp
send C:\Dokumente und Einstellungen\yves\Desktop\ftp\test\Dokumente und Einstellungen\yves\Desktop\ftp\transfer3.ftp test\Dokumente und Einstellungen\yves\Desktop\ftp\transfer3.ftp
send C:\Dokumente und Einstellungen\yves\Desktop\ftp\test\Dokumente und Einstellungen\yves\Desktop\ftp\transferx.ftp test\Dokumente und Einstellungen\yves\Desktop\ftp\transferx.ftp
send C:\Dokumente und Einstellungen\yves\Desktop\ftp\test\Dokumente und Einstellungen\yves\Desktop\ftp\u.txt test\Dokumente und Einstellungen\yves\Desktop\ftp\u.txt
send C:\Dokumente und Einstellungen\yves\Desktop\ftp\test\Dokumente und Einstellungen\yves\Desktop\ftp\xtrans.ftp test\Dokumente und Einstellungen\yves\Desktop\ftp\xtrans.ftp
send C:\Dokumente und Einstellungen\yves\Desktop\ftp\test\Dokumente und Einstellungen\yves\Desktop\ftp\zauflistung.txt test\Dokumente und Einstellungen\yves\Desktop\ftp\zauflistung.txt
send C:\Dokumente und Einstellungen\yves\Desktop\ftp\test\Dokumente und Einstellungen\yves\Desktop\ftp\ztransfer.ftp test\Dokumente und Einstellungen\yves\Desktop\ftp\ztransfer.ftp
send C:\Dokumente und Einstellungen\yves\Desktop\ftp\test\Dokumente und Einstellungen\yves\Desktop\ftp\transfer\Dokumente und Einstellungen\yves\Desktop\ftp\test1\Dokumente und Einstellungen\yves\Desktop\ftp\testdatei.txt test\Dokumente und Einstellungen\yves\Desktop\ftp\transfer\Dokumente und Einstellungen\yves\Desktop\ftp\test1\Dokumente und Einstellungen\yves\Desktop\ftp\testdatei.txt
send C:\Dokumente und Einstellungen\yves\Desktop\ftp\test\Dokumente und Einstellungen\yves\Desktop\ftp\transfer\Dokumente und Einstellungen\yves\Desktop\ftp\test2\Dokumente und Einstellungen\yves\Desktop\ftp\a.rtf test\Dokumente und Einstellungen\yves\Desktop\ftp\transfer\Dokumente und Einstellungen\yves\Desktop\ftp\test2\Dokumente und Einstellungen\yves\Desktop\ftp\a.rtf
send C:\Dokumente und Einstellungen\yves\Desktop\ftp\test\Dokumente und Einstellungen\yves\Desktop\ftp\transfer\Dokumente und Einstellungen\yves\Desktop\ftp\test2\Dokumente und Einstellungen\yves\Desktop\ftp\hallo yves.wav test\Dokumente und Einstellungen\yves\Desktop\ftp\transfer\Dokumente und Einstellungen\yves\Desktop\ftp\test2\Dokumente und Einstellungen\yves\Desktop\ftp\hallo yves.wav
send C:\Dokumente und Einstellungen\yves\Desktop\ftp\test\Dokumente und Einstellungen\yves\Desktop\ftp\transfer\Dokumente und Einstellungen\yves\Desktop\ftp\test2\Dokumente und Einstellungen\yves\Desktop\ftp\testdatei1.wav test\Dokumente und Einstellungen\yves\Desktop\ftp\transfer\Dokumente und Einstellungen\yves\Desktop\ftp\test2\Dokumente und Einstellungen\yves\Desktop\ftp\testdatei1.wav
bye
also liegt es am absoluten oder relativen pfad, wie kann ich es auf absolut machen?
speichere ich diese datei (batch) auf das C: direkt wird meine liste korekt erstellt
REM FTP Liste Löschen
del ftpliste.ftp
REM FTP Liste erstellen
echo open 127.0.0.1>> ftpliste.ftp
echo user>> ftpliste.ftp
echo pass>> ftpliste.ftp
REM create root directory
echo mkdir test >> ftpliste.ftp
REM Build Directory Structure
for /f "tokens=1,2,3,4 delims=\" %%a in ('dir C:\test /ad /o /b /s') do @echo mkdir %%b\%%c\%%d >> ftpliste.ftp
REM create transfer list
for /f "tokens=1,2,3,4,5 delims=\" %%A in ('dir C:\test /a-d /o /b /s') do @echo send %%~pfB%%~pC%%C%%~pD%%D%%~pE%%E %%~B%%~pC%%C%%~pD%%D%%~pE%%E >> ftpliste.ftp
echo bye>> ftpliste.ftp
===
so sieht sie aus, wenn der obere BATCH auf dem C: gespeichert ist.
open 127.0.0.1
user
pass
mkdir test
mkdir test\transfer\
mkdir test\transfer\test1
mkdir test\transfer\test2
send C:\test\auflistung.cmd test\auflistung.cmd
send C:\test\ausfhrung.bat test\ausfhrung.bat
send C:\test\falsch.ftp test\falsch.ftp
send C:\test\ftp via batch.zip test\ftp via batch.zip
send C:\test\Kopie von auflistung.cmd test\Kopie von auflistung.cmd
send C:\test\richtig.ftp test\richtig.ftp
send C:\test\transfer.ftp test\transfer.ftp
send C:\test\transfer1.ftp test\transfer1.ftp
send C:\test\transfer2.ftp test\transfer2.ftp
send C:\test\transfer3.ftp test\transfer3.ftp
send C:\test\transferx.ftp test\transferx.ftp
send C:\test\u.txt test\u.txt
send C:\test\xtrans.ftp test\xtrans.ftp
send C:\test\zauflistung.txt test\zauflistung.txt
send C:\test\ztransfer.ftp test\ztransfer.ftp
send C:\test\transfer\test1\testdatei.txt test\transfer\test1\testdatei.txt
send C:\test\transfer\test2\a.rtf test\transfer\test2\a.rtf
send C:\test\transfer\test2\hallo yves.wav test\transfer\test2\hallo yves.wav
send C:\test\transfer\test2\testdatei1.wav test\transfer\test2\testdatei1.wav
bye
===
speichere ich es zb auf den Desktop die BATCH datei, so wird diese so ausgelesen:
open 127.0.0.1
user
pass
mkdir test
mkdir test\transfer\
mkdir test\transfer\test1
mkdir test\transfer\test2
send C:\Dokumente und Einstellungen\yves\Desktop\ftp\test\Dokumente und Einstellungen\yves\Desktop\ftp\auflistung.cmd test\Dokumente und Einstellungen\yves\Desktop\ftp\auflistung.cmd
send C:\Dokumente und Einstellungen\yves\Desktop\ftp\test\Dokumente und Einstellungen\yves\Desktop\ftp\ausfhrung.bat test\Dokumente und Einstellungen\yves\Desktop\ftp\ausfhrung.bat
send C:\Dokumente und Einstellungen\yves\Desktop\ftp\test\Dokumente und Einstellungen\yves\Desktop\ftp\falsch.ftp test\Dokumente und Einstellungen\yves\Desktop\ftp\falsch.ftp
send C:\Dokumente und Einstellungen\yves\Desktop\ftp\test\Dokumente und Einstellungen\yves\Desktop\ftp\ftp via batch.zip test\Dokumente und Einstellungen\yves\Desktop\ftp\ftp via batch.zip
send C:\Dokumente und Einstellungen\yves\Desktop\ftp\test\Dokumente und Einstellungen\yves\Desktop\ftp\Kopie von auflistung.cmd test\Dokumente und Einstellungen\yves\Desktop\ftp\Kopie von auflistung.cmd
send C:\Dokumente und Einstellungen\yves\Desktop\ftp\test\Dokumente und Einstellungen\yves\Desktop\ftp\richtig.ftp test\Dokumente und Einstellungen\yves\Desktop\ftp\richtig.ftp
send C:\Dokumente und Einstellungen\yves\Desktop\ftp\test\Dokumente und Einstellungen\yves\Desktop\ftp\transfer.ftp test\Dokumente und Einstellungen\yves\Desktop\ftp\transfer.ftp
send C:\Dokumente und Einstellungen\yves\Desktop\ftp\test\Dokumente und Einstellungen\yves\Desktop\ftp\transfer1.ftp test\Dokumente und Einstellungen\yves\Desktop\ftp\transfer1.ftp
send C:\Dokumente und Einstellungen\yves\Desktop\ftp\test\Dokumente und Einstellungen\yves\Desktop\ftp\transfer2.ftp test\Dokumente und Einstellungen\yves\Desktop\ftp\transfer2.ftp
send C:\Dokumente und Einstellungen\yves\Desktop\ftp\test\Dokumente und Einstellungen\yves\Desktop\ftp\transfer3.ftp test\Dokumente und Einstellungen\yves\Desktop\ftp\transfer3.ftp
send C:\Dokumente und Einstellungen\yves\Desktop\ftp\test\Dokumente und Einstellungen\yves\Desktop\ftp\transferx.ftp test\Dokumente und Einstellungen\yves\Desktop\ftp\transferx.ftp
send C:\Dokumente und Einstellungen\yves\Desktop\ftp\test\Dokumente und Einstellungen\yves\Desktop\ftp\u.txt test\Dokumente und Einstellungen\yves\Desktop\ftp\u.txt
send C:\Dokumente und Einstellungen\yves\Desktop\ftp\test\Dokumente und Einstellungen\yves\Desktop\ftp\xtrans.ftp test\Dokumente und Einstellungen\yves\Desktop\ftp\xtrans.ftp
send C:\Dokumente und Einstellungen\yves\Desktop\ftp\test\Dokumente und Einstellungen\yves\Desktop\ftp\zauflistung.txt test\Dokumente und Einstellungen\yves\Desktop\ftp\zauflistung.txt
send C:\Dokumente und Einstellungen\yves\Desktop\ftp\test\Dokumente und Einstellungen\yves\Desktop\ftp\ztransfer.ftp test\Dokumente und Einstellungen\yves\Desktop\ftp\ztransfer.ftp
send C:\Dokumente und Einstellungen\yves\Desktop\ftp\test\Dokumente und Einstellungen\yves\Desktop\ftp\transfer\Dokumente und Einstellungen\yves\Desktop\ftp\test1\Dokumente und Einstellungen\yves\Desktop\ftp\testdatei.txt test\Dokumente und Einstellungen\yves\Desktop\ftp\transfer\Dokumente und Einstellungen\yves\Desktop\ftp\test1\Dokumente und Einstellungen\yves\Desktop\ftp\testdatei.txt
send C:\Dokumente und Einstellungen\yves\Desktop\ftp\test\Dokumente und Einstellungen\yves\Desktop\ftp\transfer\Dokumente und Einstellungen\yves\Desktop\ftp\test2\Dokumente und Einstellungen\yves\Desktop\ftp\a.rtf test\Dokumente und Einstellungen\yves\Desktop\ftp\transfer\Dokumente und Einstellungen\yves\Desktop\ftp\test2\Dokumente und Einstellungen\yves\Desktop\ftp\a.rtf
send C:\Dokumente und Einstellungen\yves\Desktop\ftp\test\Dokumente und Einstellungen\yves\Desktop\ftp\transfer\Dokumente und Einstellungen\yves\Desktop\ftp\test2\Dokumente und Einstellungen\yves\Desktop\ftp\hallo yves.wav test\Dokumente und Einstellungen\yves\Desktop\ftp\transfer\Dokumente und Einstellungen\yves\Desktop\ftp\test2\Dokumente und Einstellungen\yves\Desktop\ftp\hallo yves.wav
send C:\Dokumente und Einstellungen\yves\Desktop\ftp\test\Dokumente und Einstellungen\yves\Desktop\ftp\transfer\Dokumente und Einstellungen\yves\Desktop\ftp\test2\Dokumente und Einstellungen\yves\Desktop\ftp\testdatei1.wav test\Dokumente und Einstellungen\yves\Desktop\ftp\transfer\Dokumente und Einstellungen\yves\Desktop\ftp\test2\Dokumente und Einstellungen\yves\Desktop\ftp\testdatei1.wav
bye
also liegt es am absoluten oder relativen pfad, wie kann ich es auf absolut machen?
Ich frage mich ja, warum bastla dir alles vorkaut und du dann doch deinen eigenen Kram einsetzt.
Ich bin raus.
Ich bin raus.
Hallo katze78 und blablanick!
Ihr werdet Euch doch wohl meinetwegen nicht in die Haare (ins Fell ) kriegen ...
... vor allem, weil mein Vorschlag im Grunde genommen ohnehin, wie Biber das immer vornehm auszudrücken pflegt, "suboptimal" war (ist anscheinend wirklich nicht mein Tag).
Einen Versuch mach' ich aber noch:
Damit sollte eigentlich nur noch die Position der erstellten Datei "ftpliste.ftp" vom Ort der Batchdatei abhängig sein (was sich durch das Entfernen des "REM" vor Zeile 6 auch ändern lässt) ...
Grüße
bastla
Ihr werdet Euch doch wohl meinetwegen nicht in die Haare (ins Fell ) kriegen ...
... vor allem, weil mein Vorschlag im Grunde genommen ohnehin, wie Biber das immer vornehm auszudrücken pflegt, "suboptimal" war (ist anscheinend wirklich nicht mein Tag).
Einen Versuch mach' ich aber noch:
@echo off & setlocal
set "BasePath=C:\test"
REM ftp-Steuerdatei im Verzeichnis der Batchdatei erstellen
set "ftp=%~dp0ftpliste.ftp"
REM Alternativ dazu kann ntürlich auch ein absoluter Pfad angegeben werden
REM set "ftp=C:\ftpliste.ftp"
REM Absluten Pfadanteil entfernen
for %%i in ("%BasePath%") do set "RemoveAbs=%%~dpi"
REM FTP Liste Löschen
del "%ftp%" 2>nul
REM FTP Liste erstellen
>>"%ftp%" echo open 127.0.0.1
>>"%ftp%" echo user
>>"%ftp%" echo pass
REM create root directory
for %%i in ("%BasePath%") do >>"%ftp%" echo mkdir "%%~nxi"
REM Build Directory Structure
for /f "delims=" %%i in ('dir "%BasePath%" /ad /o /b /s') do call :ProcessDir "%%i"
REM create transfer list
for /f "delims=" %%i in ('dir "%BasePath%" /a-d /o /b /s') do call :ProcessFile "%%i"
>>"%ftp%" echo bye
goto :eof
:ProcessDir
set "AbsPath=%~1"
call set "RelPath=%%AbsPath:%RemoveAbs%=%%"
>>"%ftp%" echo mkdir "%RelPath%"
goto :eof
:ProcessFile
set "AbsPath=%~1"
call set "RelPath=%%AbsPath:%RemoveAbs%=%%"
>>"%ftp%" echo send %1 "%RelPath%"
goto :eof
Grüße
bastla