.bat oder html code erstellen?
Hey Leute, kann mir jemand bei einem Code für eine .bat Datei oder HTML Datei helfen?
Ich möchte gern eine CSV Datei via Link von einer anderen Seite downloaden und diesen am besten gleich in Excel anzeigen lassen.
Möchte mir den Weg sparen, erst den Link aufzurufen, Download klicken, Datei öffnen...
Kann mir jemand helfen?
2 Antworten
Die DateiEndung .bat wird seit Win11 nicht mehr unterstützt. verwende statt dessen die offizielle Endung .cmd für "Windows-Batch" (Windows-Befehlsskript)
ich benutze kein Exel somit somit ist das Öffnen per "start " nur meine standardvariante für csv allgemein. ! der Download der DemoDatei klappt jedoch wie es sein soll.
demo.cmd
pushd "%~dp0" &rem nur um sicherzustellen, das die heruntergeladene Datei auch im Ordner dieser Batchdatei landet
rem Demo-CSV von https://sample-videos.com/download-sample-csv.php herunterladen
curl "https://sample-videos.com/csv/Sample-Spreadsheet-10000-rows.csv" -o "%cd%\test.csv"
rem mit der verknüpften Anwendung öffnen , in der Regel Exel oder OpenOffice
start "" "%cd%\test.csv"
pause
Batch mag für dergleichen einfache Operationen noch geeignet sein, aber sollte in der heutigen Zeit nicht mehr die Sprache der Wahl sein . Seit Windows 10 ist Powershell die Standardconsole un damit auch seine mächtige Scriptsprache.
obiges .cmd als Powerschellsript:
demo.ps1
$ScriptFolder = $PSScriptRoot
$url = 'https://sample-videos.com/csv/Sample-Spreadsheet-10000-rows.csv'
$destinationFile = "$ScriptFolder\test.csv"
$ProgressPreference = 'SilentlyContinue' #fortschrittsanzeige ausschalten
Invoke-WebRequest $url -OutFile $destinationFile
Start-Process $destinationFile
pause
...soweit der gleiche Kram in neuem Gewand.
Interessant wirds, wenn PowerShell direkt mit Schnittstellen für MS-Applikationen agiert. (COM-Objekte)
hier meine stark abgespeckete ungetestete variante für eine direkte Konvertierung csv ->xlsx
demo_ungetestet.ps1
$ScriptFolder = $PSScriptRoot
$url = 'https://sample-videos.com/csv/Sample-Spreadsheet-10000-rows.csv'
$csv = Join-Path $ScriptFolder 'test.csv'
$xls = Join-Path $ScriptFolder "test.xlsx"
$ProgressPreference = 'SilentlyContinue'
Invoke-WebRequest $url -OutFile $csv #download
#automatische konvertierung in Exelformat mit Exel
$xl = new-object -comobject excel.application
$xl.visible = $false
$Workbook = $xl.workbooks.open($CSV)
$Worksheets = $Workbooks.worksheets
$Workbook.SaveAs($XLS,51)
$Workbook.Saved = $True
$xl.Quit()
pause
zu diesem Thema gibts auf Stackoverflo w massenweise Lösungsansätze:
Eigentlich sollte es mit "start https://link/zur/datei.endung" in Batch gehen. Damit wird die Datei heruntergeladen und unter Downloads gespeichert. Mit dem start-Befehl sollte man die Datei unter Angabe des absoluten Pfades auch öffnen können.