Typ pliku wsadowego zawsze przyjmuje wartość exe zamiast polecenia Shell. Nawet jeśli usunę skojarzenie pliku exe i dodam skojarzenie pliku batfile, to nie zajmie. Czy ktoś może mi pomóc?
źródło
Typ pliku wsadowego zawsze przyjmuje wartość exe zamiast polecenia Shell. Nawet jeśli usunę skojarzenie pliku exe i dodam skojarzenie pliku batfile, to nie zajmie. Czy ktoś może mi pomóc?
Spróbuj zmienić rozszerzenie pliku na .bat
.
Jeśli nie widzisz rozszerzeń plików, otwórz Eksplorator plików, a następnie przejdź do menu Widok -> Opcje ... Następnie w oknie dialogowym Karta Widok w oknie dialogowym Opcje folderów usuń zaznaczenie opcji „Ukryj rozszerzenia znanych typów plików” .
Następnie po prostu zmień rozszerzenie z cokolwiek to jest .bat
Twój Typ pliku wsadowego jest zawsze traktowany jako exe zamiast polecenia powłoki Shell wydaje się być nieco niejasny.
Jednakże, nie ma różnicy czy dyskryminacji w sposobie, w jaki sposób traktuje linia tłumacza domyślne polecenia systemu Windows wykonywalne .COM
, .EXE
, .BAT
i .CMD
.
Dowód : następny skrypt wsadowy analizuje domyślną wartość PathExt
zmiennej środowiskowej .COM;.EXE;.BAT;.CMD
i wyświetla odpowiednie wartości wyjściowych assoc
i ftype
poleceń odpowiednio:
@ECHO OFF
SETLOCAL EnableExtensions
set "parse_ext=%pathext:;=","%"
@for %%G in ("%parse_ext%") do (
@for /F "tokens=1,* delims==" %%H in ('assoc %%G') do (
@for /F "tokens=1,* delims==" %%J in ('ftype %%I') do (
@echo %%H %%I %%K
)
)
)
Wynik:
==>D:\bat\SU\969327.bat
.COM comfile "%1" %*
.EXE exefile "%1" %*
.BAT batfile "%1" %*
.CMD cmdfile "%1" %*
Fyi: PathExt
zmienna środowiskowa zwraca listę rozszerzeń plików, które system operacyjny uważa za wykonalne . Podczas wykonywania wiersza polecenia, który nie zawiera rozszerzenia, interpreter poleceń ( cmd.exe
) korzysta z wartości tej zmiennej środowiskowej, aby określić, których rozszerzeń szukać i w jakiej kolejności.