gpt4 book ai didi

for-loop - WMIC 最后修改包含在 for 循环中

转载 作者:行者123 更新时间:2023-12-04 13:36:33 26 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Variables are not behaving as expected

(1 个回答)


去年关闭。




我正在尝试获取具有几乎相同名称的文件的最后修改日期(常见的 CompactReg00)。

我希望这个日期对于不同的日期设置是安全的,所以我想使用 wmic 命令。
如果我这样使用它,该命令运行良好:

set filename=CompactReg00_20200504T112430Z
for /f %%p in ('wmic DataFile where "name='C:\\Temp\\Alarm\\Archive\\20200508\\sDiag\\%filename%'" get lastmodified ^| find "+" ') do set "val=%%p"
echo %val%

但是当我想将它包含到另一个 for 循环以获取所有“CompactReg00”文件的最后修改日期时,我无法获得 %val% 值

这是我的脚本:
for /R %%a IN (*CompactReg00*) DO (
echo %%~na
for /f %%p in ('wmic DataFile where "name='C:\\Temp\\Alarm\\Archive\\20200508\\sDiag\\%%~na'" get lastmodified ^| find "+" ') do set "val=%%p"
echo %val%
echo %%~na_%val%
)

你能帮我更正它或找到另一种方法来获得这个最后修改的日期总是 yyyymmdd

最佳答案

请参阅@Stephan 发布的链接您应该使用 SetLocal EnableDelayedExpansion在循环之前 for...do并进行一些调整以获得日期 yyyymmdd :

@echo off
SetLocal EnableDelayedExpansion
@for /R %%a IN (*CompactReg00*) DO (
echo "%%~nxa"
@for /f %%p in ('wmic DataFile where "name='C:\\Temp\\Alarm\\Archive\\20200508\\sDiag\\%%~nxa'" get lastmodified ^| find "+" ') do (
set "val=%%p"
echo "!val!"
set "year=!val:~0,4!"
set "month=!val:~4,2!"
set "day=!val:~6,2!"
echo "%%~na_!val!"
echo !year!!month!!day!
)
)
pause

关于for-loop - WMIC 最后修改包含在 for 循环中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61682667/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com