Существует ли переменная, которая представляет имя файла скрипта (исключая расширения)?

270
Mr. Mendelli

Я делаю пакетную программу, которая создаст .iniфайл настроек после выполнения. Я хочу, чтобы имя файла настроек (исключая расширение) было извлечено из имени файла скриптов, поэтому, если оно будет изменено, имя настроек изменится, чтобы отразить его при создании. Я использовал такие программы, как HxD, которые могут сделать это, но я понятия не имею, как. Есть ли переменная или шаблон, который можно использовать для этого?

Я проанализировал некоторые программы, которые делают это, но некоторые, кажется, используют разные значения / методы. Одна из этих программ использовалась %d.ini.

2

1 ответ на вопрос

2
DavidPostill

Я хочу, чтобы имя файла настроек было именем файла скрипта

Используйте следующее выражение, чтобы получить имя файла скрипта:

%~n0 

Пример использования:

> 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 

Замечания:

  • %0 это имя командного файла.
  • %~n0Расширение %0до имени файла без расширения файла

Дальнейшее чтение

Будет ли это * возможно * работать, если я преобразую скрипт в двоичный файл `EXE`? Я обсуждаю это после компиляции всего? Mr. Mendelli 6 лет назад 0
@ Мистер Менделли Понятия не имею. Попробуйте и посмотрите. DavidPostill 6 лет назад 0
Это сделал это! Спасибо за ваш ответ, и да, это сработало после конвертации. Mr. Mendelli 6 лет назад 0