.bat oder html code erstellen?

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:

Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren

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.

Woher ich das weiß:Hobby – Ich programmiere in meiner Freizeit oft komplexe Anwendungen