Batch: Datei kopieren mit Abfrage über Windows Explorer Fenster
Hallo Zusammen,
ich habe mir eine Batch geschrieben, welche mir eine vorher definierte Datei auf einen PC kopiert, den ich via Variablenabfrage direkt in die Batch eingebe.
Gibt es eine Möglichkeit/einen Befehl, dass anstatt der festgelegten Datei ein Explorerfenster aufgeht und ich zu der gewünschten Datei navigieren kann?
Ich hoffe ihr versteht was ich meine. Ich kann auch gerne mein bisheriges Skript hier einstellen.
Viele Grüße
ich habe mir eine Batch geschrieben, welche mir eine vorher definierte Datei auf einen PC kopiert, den ich via Variablenabfrage direkt in die Batch eingebe.
Gibt es eine Möglichkeit/einen Befehl, dass anstatt der festgelegten Datei ein Explorerfenster aufgeht und ich zu der gewünschten Datei navigieren kann?
Ich hoffe ihr versteht was ich meine. Ich kann auch gerne mein bisheriges Skript hier einstellen.
Viele Grüße
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 466094
Url: https://administrator.de/contentid/466094
Ausgedruckt am: 21.11.2024 um 18:11 Uhr
8 Kommentare
Neuester Kommentar
Moin,
Als Batch wüsste ich nicht. Mit der Powershell kein Problem. Wie ist hier gut beschrieben:
https://www.digicomp.ch/blog/2014/06/02/tipp-zum-windows-powershell-file ...
Das solltest Du tun.
hth
Erik
Zitat von @chkdsk:
Hallo Zusammen,
ich habe mir eine Batch geschrieben, welche mir eine vorher definierte Datei auf einen PC kopiert, den ich via Variablenabfrage direkt in die Batch eingebe.
Gibt es eine Möglichkeit/einen Befehl, dass anstatt der festgelegten Datei ein Explorerfenster aufgeht und ich zu der gewünschten Datei navigieren kann?
Hallo Zusammen,
ich habe mir eine Batch geschrieben, welche mir eine vorher definierte Datei auf einen PC kopiert, den ich via Variablenabfrage direkt in die Batch eingebe.
Gibt es eine Möglichkeit/einen Befehl, dass anstatt der festgelegten Datei ein Explorerfenster aufgeht und ich zu der gewünschten Datei navigieren kann?
Als Batch wüsste ich nicht. Mit der Powershell kein Problem. Wie ist hier gut beschrieben:
https://www.digicomp.ch/blog/2014/06/02/tipp-zum-windows-powershell-file ...
Ich hoffe ihr versteht was ich meine. Ich kann auch gerne mein bisheriges Skript hier einstellen.
Das solltest Du tun.
hth
Erik
Servus,
das gibt's einige Varianten. Für dich am einfachsten wäre es das Skript oder eine Verknüpfung in den "SendTo" Ordner zu packen und dann im Explorer die Datei übers Kontextmenü an das Skript zu senden. Im Skript kannst du dann mit %~1 auf das übergebene File zugreifen.
Alternativ kann man sich natürlich auch der Powershell in der Batch behelfen
usw.
Grüße Uwe
btw. wenn nur Dateien kopiert werden sollen, würde es eigentlich auch reichen zwei Verknüpfungen zum Ordner in den SendTo Ordner zu werfen , Skript überflüssig.
das gibt's einige Varianten. Für dich am einfachsten wäre es das Skript oder eine Verknüpfung in den "SendTo" Ordner zu packen und dann im Explorer die Datei übers Kontextmenü an das Skript zu senden. Im Skript kannst du dann mit %~1 auf das übergebene File zugreifen.
set "filepath=%~1"
echo %filepath%
@echo off
for /f "tokens=* delims=" %%a in ('powershell -EP ByPass -NoP -C "Add-Type -A System.Windows.Forms; $dlg = New-Object System.Windows.Forms.OpenFileDialog; if($dlg.ShowDialog() -eq 'OK'){return $dlg.FileName}"') do set "filepath=%%a"
if "%filepath%" NEQ "" (
echo Pfad: %filepath%
) else (
echo Keine Datei selektiert.
)
Grüße Uwe
btw. wenn nur Dateien kopiert werden sollen, würde es eigentlich auch reichen zwei Verknüpfungen zum Ordner in den SendTo Ordner zu werfen , Skript überflüssig.
Zitat von @chkdsk:
Bei einigen Dateien kommt die Fehlermeldung: Das System kann die angegebene Datei nicht finden.
Ich kann noch nicht nachvollziehen bei welchen Datei er meckert und bei welchen nicht.
Ich schon, bei deinem Code sind das alle Dateien mit Leerzeichen im Pfad . Deswegen die Variable %filepath% und alle anderen Pfade immer in "Anführungszeichen" packen!!Bei einigen Dateien kommt die Fehlermeldung: Das System kann die angegebene Datei nicht finden.
Ich kann noch nicht nachvollziehen bei welchen Datei er meckert und bei welchen nicht.
copy "%filepath%" "\\%ID%\C$\Temp"
Außerdem stehen deine Copy Befehle an der falschen Stelle, denn nur wenn der Pfad ja nicht leer ist sollte kopiert werden, also wenn der der User z.B. auf Abbrechen klickt, tritt so eine Situation ein, deswegen kommt der Copy Befehl in die erste Verzweigung der IF-Abfrage bei der auch sichergestellt ist das der Pfad nicht leer ist!
Füge folgendes in den Kopf deines Skriptes ein
Der Code prüft ob das Skript bereits elevated läuft, wenn nicht, startet sich die Batch erneut über ein temporäres VBS selbst elevated und triggert die UAC zum Bestätigen der Elevation. Alles was an Code dahinter kommt läuft dann elevated, sofern der User die UAC positiv bestätigt, oder die Batch schon elevated gestartet wurde.
p.s. Das ist so langsam ziemlich OffTopic, also beim nächsten mal neuen Thread oder Suchfunktion hier im Forum bitte, Danke.
Und bitte noch als gelöst markieren. Merci!
@echo off & setlocal
net session >nul 2>&1 || (
echo CreateObject^("Shell.Application"^).ShellExecute "%~0", "", "", "runas", 1 >"%temp%\runasadmin.vbs"
"%temp%\runasadmin.vbs"
exit /b
)
echo Alles was hier kommt wird elevated ausgeführt
p.s. Das ist so langsam ziemlich OffTopic, also beim nächsten mal neuen Thread oder Suchfunktion hier im Forum bitte, Danke.
Und bitte noch als gelöst markieren. Merci!