datobsn
Goto Top

Namen einer Datei als Variable beim Starten einer BatchDatei übergeben

Hi Community,
und zwar beschäftige ich mich zur Zeit mit der Sprache C++.
Da ich ja immer die Quellcode Datei per cmd mit lauter Eingaben kompilieren und linken kann, möchte ich dies Automatisieren.
Und zwar meine Idee wäre folgendes:

Ich möchte gerne die .cpp Datei mit "Drag&Drop" auf die Batchdatei ziehen, um so den Dateinamen gleich irgendwie als Variable mitzugeben.
Ich denke, der Quellcode siehe dann irgendwie so aus:
@echo off
cd
set /p progname=Programmname: 
::---Übernahme der QuellcodeDatei--::
set quellcode=????

:: kompelieren & linken ::
gcc -o %progname% %quellcode%
pause

Ich bin nun schon die ganze Zeit am Rätseln, wie ich den Namen dann mit einspeisen kann, aber mir fällt nichts ein :/
Vielleicht fällt ja euch etwas ein face-wink

Danke schon mal

MFG
Tobsn

Content-Key: 358219

Url: https://administrator.de/contentid/358219

Printed on: April 19, 2024 at 20:04 o'clock

Member: rubberman
rubberman Dec 14, 2017 at 17:54:49 (UTC)
Goto Top
Eine per drag/drop auf das Script gezogene Datei ist dort als Parameter %1 abgreifbar.
if "%~1"=="" exit /b  
set quellcode=%1

Steffen
Member: DaTobsn
DaTobsn Dec 15, 2017 at 13:26:00 (UTC)
Goto Top
Hi Steffen,
Danke für die Antwort!
Es funktioniert tatsächhlich, nur noch eine Anmerkung:
Er übernimmt nicht nur den Namen mit Endung, auch das gesamte Verzeichnis.
Kann man das irgendwie "abtrennen"?
Ich brauche nur den Namen mit Endung
(P.S.: Sowohl Name als auch Verzeichnis ändert sich häufig)

MFG
Tobsn
Member: rubberman
Solution rubberman Dec 15, 2017 at 15:41:21 (UTC)
Goto Top
Das macht nicht wirklich Sinn, denn wenn du eine Datei von einem anderen Verzeichnis auf die Datei ziehst, dann hast du natürlich auch dann den vollen Pfad mit dem anderen Verzeichnis.

Aber um deine Frage zu beantworten, in Parametervariablen kannst du (genau wie in FOR Variablen) Modifikatoren verwenden. Führe CALL /?aus, um ein Beschreibung aller dieser Modifikatoren zu bekommen.
echo %~nx1
Steffen
Member: DaTobsn
DaTobsn Dec 15, 2017 at 16:58:11 (UTC)
Goto Top
Okay, ja, des war etwas unglücklich formuliert...
gemeint ist, dass die BatchDatei mal in dem Verzeichnis, mal in dem ist.

Aber danke, die Lösung funktioniert nun :D
Member: rubberman
rubberman Dec 15, 2017 at 17:27:35 (UTC)
Goto Top
Zitat von @DaTobsn:
gemeint ist, dass die BatchDatei mal in dem Verzeichnis, mal in dem ist.

Das macht doch keinen Unterschied face-plain Naja, egal...