Batch file 如何分配%%?在批处理文件中添加变量

Batch file 如何分配%%?在批处理文件中添加变量,batch-file,Batch File,我在电视上看到这个 但当我尝试应用它时, 在循环中,我使用“set” 设置日期时间\u t=%%~t Echo datetime\u t%datetime\u t%>result.txt 文件内部仅显示 FOR %%? IN (file_to_be_queried) DO ( ECHO File Name Only : %%~n? ECHO File Extension : %%~x? ECHO Name in 8.3 notation : %%~

我在电视上看到这个

但当我尝试应用它时, 在循环中,我使用“set”

设置日期时间\u t=%%~t

Echo datetime\u t%datetime\u t%>result.txt

文件内部仅显示

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:?
)
这个变量怎么了?它是空的吗?

试试这个:

datetime_t
datetime_t
datetime_t
datetime_t
这应该很好


Mona

是-%-变量仅在
之间的当前块中有效,并且在此块之外不存在。请勿在for循环变量中使用通配符。对于试图通过阅读您的代码来学习的人来说,这是一种糟糕的做法。您好,我想问一下,在for循环中,我看到一些使用%%?,%%#的代码。它的含义是否与for循环中使用的%%a,%%b这样的临时变量相同?或者它通过使用?和#。我不知道如何识别这个问题,因为谷歌不接受特殊字符。@user2940018使用
或“#”只是为了表明你可以用你想要的任何字母替换。它可以用于其他目的,但你不必担心。
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 "!"
)