Gibt es eine Variable, die den Dateinamen eines Skripts darstellt (mit Ausnahme von Erweiterungen)?

360
Mr. Mendelli

Ich mache ein Stapelverarbeitungsprogramm, das .ininach der Ausführung eine Einstellungsdatei erstellt. Ich möchte, dass der Name der Einstellungsdatei (mit Ausnahme der Erweiterung) aus dem Namen der Skriptdatei gezogen wird. Wenn sie also geändert wird, ändert sich der Einstellungsname und spiegelt ihn bei seiner Erstellung wider. Ich habe Programme wie HxD verwendet, die das können, aber ich habe keine Ahnung wie. Gibt es eine Variable oder einen Platzhalter, der dazu verwendet werden kann?

Ich habe einige Programme analysiert, die dies tun, aber andere scheinen unterschiedliche Werte / Methoden zu verwenden. Eines dieser Programme verwendet %d.ini.

2

1 Antwort auf die Frage

2
DavidPostill

Ich möchte, dass der Name der Einstellungsdatei der Skriptdateiname ist

Verwenden Sie den folgenden Ausdruck, um den Namen der Skriptdatei abzurufen:

%~n0 

Verwendungsbeispiel:

> dir test.cmd Volume in drive F is Expansion Volume Serial Number is 3656-BB63  Directory of F:\test  27/07/2017 11:47 65 test.cmd 1 File(s) 65 bytes 0 Dir(s) 1,627,427,311,616 bytes free  > type test.cmd @echo off setlocal enabledelayedexpansion echo %~n0 endlocal  > test test 

Hinweis:

  • %0 ist der Name der Batchdatei.
  • %~n0Erweitert %0zu einem Dateinamen ohne Dateierweiterung

Lesen Sie weiter

Würde dies * möglicherweise * funktionieren, wenn ich das Skript in eine EXE-Binärdatei konvertiere? Ich debattiere, nachdem ich alles kompiliert habe? Mr. Mendelli vor 6 Jahren 0
@ Mr. Mendelli Keine Ahnung. Probieren Sie es aus und sehen Sie. DavidPostill vor 6 Jahren 0
Das hat es geschafft! Vielen Dank für Ihre Antwort und ja, es hat nach der Konvertierung funktioniert. Mr. Mendelli vor 6 Jahren 0