Supportnet / Forum / BS-Sonstige
Einfache Frage zu Batch-Syntax
Frage
Hallo allerseits,
wer kann mir helfen: Ich suche eine Möglichkeit, um im Explorer über "Senden an" den Namen des aktuellen Ordners an eine Batch-Datei zu übergeben, die dann einen Kopiervorgang in den aktuellen Ordner hinein ausführen soll.
Beispiel:
1.) Rechtsklick auf Ordner C:\Kunden
2.) 'Senden an > Verknüpfung mit projektordner.bat'(auf C:\)
3.) projektordner.bat ausführen:
xcopy O:\Projektordner\*.* <aktuelles verz>
Geht das irgendwie?
Gruß
Mutsch
Antwort 1 von hendrikw
Bei sendto wird der aktuelle Pfad/Dateiname, auf den der Rechtsklick erfolgte, als Parameter 1 übergeben.
So brauchst Du nur %1 zu verwenden.
mfg
Hendrik
So brauchst Du nur %1 zu verwenden.
mfg
Hendrik
Antwort 2 von Mutsch
Hallo Hendrik,
vielen Dank! Welchen Befehl muss ich dann in die Batch reinschreiben? xcopy K:\quellordner\*.* %1 funktioniert nicht.
Gruß
Mutsch
vielen Dank! Welchen Befehl muss ich dann in die Batch reinschreiben? xcopy K:\quellordner\*.* %1 funktioniert nicht.
Gruß
Mutsch
Antwort 3 von manei
Hallo,
%1 ist immer die Quelldatei oder das Quellverzeichnis, je nachdem was Du kopieren willst. Ist doch auch klar, worauf Du klickst und über senden an weiterleitest, ist das, was kopiert werden soll; wohin mußt Du dann noch definieren.
Also muß es heisen in deinem Fall
xcopy %1\*.* Ziel-LW:\Verzeichnispfad
MfG maneich
%1 ist immer die Quelldatei oder das Quellverzeichnis, je nachdem was Du kopieren willst. Ist doch auch klar, worauf Du klickst und über senden an weiterleitest, ist das, was kopiert werden soll; wohin mußt Du dann noch definieren.
Also muß es heisen in deinem Fall
xcopy %1\*.* Ziel-LW:\Verzeichnispfad
MfG maneich
Antwort 4 von Traumtaenzer
Wie von hendrikw beschrieben sollte deine Zeile
xcopy K:\quellordner\*.* %1
eigentlich funktionieren (tut es auch bei mir). Der angeklickte Ordner wird statt %1 (also als Ziel) eingesetzt.
Unter bestimmten Bedingungen könnten jedoch Fehler auftreten...
Enthält der Name deines Quellordners Leerzeichen? Dann in Anführungszeichen setzen.
Willst du auch Unterverzeichnisse kopieren? Dann den xcopy-Parameter /e verwenden (siehe unbedingt auch "xcopy /?").
Zum Testen der Batch solltest du mal folgende Zeilen nehmen:
xcopy O:\Projektordner\*.* %1 /f /L
pause
/f zeigt alle Pfad+Dateinamen (Quelle/Ziel) an.
/L aktiviert den Testmodus (es wird nichts kopiert, sondern nur die xcopy-Befehlsausgabe angezeigt, damit kannst du testen ohne daß Dateien bei fehlerhaften Angaben "sonstwohin" kopiert würden. Natürlich nach dem Testen das /L wieder weg :-)
/L geht jedoch nur bei WinNT/2K/XP (nicht bei Win9x, keine Ahnung ob bei WinME)
pause hält die Batch an, damit du die Befehlsausgabe/Fehlermeldungen auswerten (z.B. hier posten ;-) kannst.
@manei
Damit hat er wohl deutlich gesagt, daß er in den aktuell ausgewählten Ordner kopieren will. Also soll dieser das Ziel (und nicht die Quelle) des xcopy-Befehls sein.
Deine Erklärung verstehe ich irgendwie überhaupt nicht... Der Parameter %1 ist einfach der erste an die Batch übergebene Aufrufparameter. Das hat mit Quelle/Ziele erstmal rein gar nichts zu tun. Ob es Quelle oder Ziel sein soll, legt er doch im xcopy-Befehl je nach Bedarf fest.
mfg, Traumtänzer
xcopy K:\quellordner\*.* %1
eigentlich funktionieren (tut es auch bei mir). Der angeklickte Ordner wird statt %1 (also als Ziel) eingesetzt.
Unter bestimmten Bedingungen könnten jedoch Fehler auftreten...
Enthält der Name deines Quellordners Leerzeichen? Dann in Anführungszeichen setzen.
Willst du auch Unterverzeichnisse kopieren? Dann den xcopy-Parameter /e verwenden (siehe unbedingt auch "xcopy /?").
Zum Testen der Batch solltest du mal folgende Zeilen nehmen:
xcopy O:\Projektordner\*.* %1 /f /L
pause
/f zeigt alle Pfad+Dateinamen (Quelle/Ziel) an.
/L aktiviert den Testmodus (es wird nichts kopiert, sondern nur die xcopy-Befehlsausgabe angezeigt, damit kannst du testen ohne daß Dateien bei fehlerhaften Angaben "sonstwohin" kopiert würden. Natürlich nach dem Testen das /L wieder weg :-)
/L geht jedoch nur bei WinNT/2K/XP (nicht bei Win9x, keine Ahnung ob bei WinME)
pause hält die Batch an, damit du die Befehlsausgabe/Fehlermeldungen auswerten (z.B. hier posten ;-) kannst.
@manei
Zitat:
Ich suche eine Möglichkeit, um im Explorer über "Senden an" den Namen des aktuellen Ordners an eine Batch-Datei zu übergeben, die dann einen Kopiervorgang in den aktuellen Ordner hinein ausführen soll.
Ich suche eine Möglichkeit, um im Explorer über "Senden an" den Namen des aktuellen Ordners an eine Batch-Datei zu übergeben, die dann einen Kopiervorgang in den aktuellen Ordner hinein ausführen soll.
Damit hat er wohl deutlich gesagt, daß er in den aktuell ausgewählten Ordner kopieren will. Also soll dieser das Ziel (und nicht die Quelle) des xcopy-Befehls sein.
Deine Erklärung verstehe ich irgendwie überhaupt nicht... Der Parameter %1 ist einfach der erste an die Batch übergebene Aufrufparameter. Das hat mit Quelle/Ziele erstmal rein gar nichts zu tun. Ob es Quelle oder Ziel sein soll, legt er doch im xcopy-Befehl je nach Bedarf fest.
mfg, Traumtänzer

