第一次张贴...如果我错过了一些简单的事情,我深表歉意...
当我尝试在FOR
循环中分配日期/时间时,对每个处理的文件使用相同的日期/时间。我相信这是由于使用了%符号而不是使用!符号,但是我似乎找不到找到使之起作用的方法。
我已阅读
“此可变子字符串语法仅适用于CMD环境 变量,例如%MYVAR%,将无法与FOR参数一起使用 变量,例如%% G,但是一个简单的解决方法是设置一个变量 首先:设置%MYVAR%= %% G,然后找到新的子字符串 变量。”
但是它似乎不起作用,我假设那是因为它不再是文件,而只是一个字符串,并且没有日期/时间属性??? 任何建议将非常欢迎。 问候。
命令行参数(参数)(https://ss64.com/nt/syntax-args.html)
变量:提取变量(子字符串)(https://ss64.com/nt/syntax-substring.html)的一部分
SETLOCAL EnableDelayedExpansion
for /R %USERPROFILE%\Downloads %%F in (EPSG*.zip) do (
set name=%%F
set timestamp=%%~tF
set timestamp=!timestamp:~0,16!
set timestamp=!timestamp:/=!
set timestamp=!timestamp: =_!
set timestamp=!timestamp::=!
set destpath=%USERPROFILE%\Downloads\Nearmap\!timestamp!
powershell -command "Expand-Archive -Force -Path !name! -DestinationPath !destpath!"
)
答案 0 :(得分:0)
@echo off
setlocal DisableDelayedExpansion
for /R "%USERPROFILE%\Downloads" %%F in (EPSG*.zip) do (
set "name=%%~F"
setlocal EnableDelayedExpansion
set "timestamp=%%~tF"
set "timestamp=!timestamp:~0,16!"
set "timestamp=!timestamp:/=!"
set "timestamp=!timestamp: =_!"
set "timestamp=!timestamp::=!"
set "destpath=%USERPROFILE%\Downloads\Nearmap\!timestamp!"
powershell -command "Expand-Archive -Force -Path '!name!' -DestinationPath '!destpath!'"
endlocal
)
!
无效,如果!
存在并在启用时被删除。