【发布时间】:2015-02-20 00:12:42
【问题描述】:
如果exe 文件的时间戳早于最新版本,我正在尝试运行批处理文件来更新某些软件。为此,我使用了众所周知的for 循环。
当我这样做时:
set file=%AppData%\spark\spark.properties
for %%a in (%file%) do set olddate=%%~ta
echo %olddate%
返回一个时间戳。
当我像这样运行它时:
set spark_exe=%ProgramFiles%\Spark\Spark.exe
for %%a in (%spark_exe%) do set olddate=%%~ta
echo %olddate%
不返回时间戳。 (也不适用于该文件夹中的任何其他文件)
如果我跑:
set spark_exe=%ProgramFiles%\Spark\Spark.exe
for %%a in (%spark_exe%) do set fqp=%%~fa
echo %fqp%
我得到了完全合格的路径。
所以...我可以使用一些扩展变量...但不能使用其他...为什么?...如何?...帮助?
谢谢:)
【问题讨论】:
-
尝试使用引号 ->
set "spark_exe=%ProgramFiles%\Spark\Spark.exe"和for %%a in ("%spark_exe%") do set olddate=%%~ta -
没有变化...我什至尝试将 fqp 放在括号之间但没有运气
标签: batch-file scripting cmd timestamp