2013-11-11 2 views
0
FOR %%? IN (file_to_be_queried) DO (
    ECHO File Name Only  : %%~n? 
    ECHO File Extension  : %%~x? 
    ECHO Name in 8.3 notation : %%~sn? 
    ECHO File Attributes  : %%~a? 
    ECHO Located on Drive  : %%~d? 
    ECHO File Size   : %%~z? 
    ECHO Last-Modified Date : %%~t? 
    ECHO Parent Folder  : %%~dp? 
    ECHO Fully Qualified Path : %%~f? 
    ECHO FQP in 8.3 notation : %%~sf? 
    ECHO Location in the PATH : %%~dp$PATH:? 
) 

Я видел это на http://www.robvanderwoude.com/battech_fileproperties.php.Как назначить %%? переменная в пакетном файле

Но когда я пытаюсь применить его, В цикле и я с помощью "установить"

SET datetime_t = %% ~ т?

Echo datetime_t% datetime_t%> result.txt

внутри файла отображается только

datetime_t 
datetime_t 
datetime_t 
datetime_t 

, что произойдет с этой переменной? Это пустой?

+0

да - %% - Переменные действительны только в текущем блоке между '(' и ')' и не снаружи, существующих в этом блоке. – Stephan

+0

Не используйте подстановочный знак в переменной цикла. Это плохая практика для людей, пытающихся учиться, читая ваш код. – foxidrive

ответ

1

Попробуйте это:

setlocal enabledelayedexpansion 
Rem Above is required for this to work 

FOR %%? IN (file_to_be_queried) DO (
ECHO File Name Only  : %%~n? 
ECHO File Extension  : %%~x? 
ECHO Name in 8.3 notation : %%~sn? 
ECHO File Attributes  : %%~a? 
ECHO Located on Drive  : %%~d? 
ECHO File Size   : %%~z? 
ECHO Last-Modified Date : %%~t? 
ECHO Parent Folder  : %%~dp? 
ECHO Fully Qualified Path : %%~f? 
ECHO FQP in 8.3 notation : %%~sf? 
ECHO Location in the PATH : %%~dp$PATH:? 

SET datetime_t=%%~t? 
Echo datetime_t !datetime_t! > result.txt 
Rem Notice use of "!" 
) 

И это должно работать нормально.

Mona

+0

Привет, я хочу спросить, что в цикле for я видел некоторую кодировку с %%?, %% #. Это то же значение, что и временная переменная типа %% a, %% b, которая используется в цикле for? или он выявляет особый смысл с использованием? а также #. Я не знаю, как определить эту проблему, поскольку Google не принимает специальный символ. – user2940018

+0

@ user2940018 Использование '?' Или '#' - это просто показать, что вы можете заменить любую нужную букву. Его можно использовать для некоторых других целей, но вам не нужно об этом беспокоиться. – Monacraft

Смежные вопросы