【发布时间】:2020-02-27 12:59:51
【问题描述】:
问题说明:将文件夹拖到批处理文件上会更改 for 循环的结果,而只需单击批处理文件会导致来自上述 for 循环的不同但所需的输出。
背景: 我想在文件夹中检索最新创建的 .jar 文件的名称。 .bat 文件将位于 .jar 所在的文件夹中。使用下面提供的示例 .bat 文件代码,我双击 .bat 文件并获得我正在寻找的结果,例如: {jar_root_dir_path}+"logger-20191030.jar",请参阅下面的 "Desired output:" 部分进行说明。
问题是这个 .bat 文件只会在有人将文件夹拖到它上面然后将此信息传递给 .jar 文件的情况下使用。这就是我的问题所在。当我将文件夹拖到批处理文件上时,我没有得到最新的 .jar 文件的任何文件结果。请参阅下面的“当前输出:” 部分以查看问题的输出。
代码:
#Example code
@echo off
for /f "delims=" %%x in ('dir /od /b logger*.jar') do set latestjar=%%x
echo "%~dp0%latestjar%" + "%~dp0output.txt"
pause
输出:
注意: 此问题中的 {example_path_here} 仅充当实际目录/文件路径的占位符,例如{example_dir} = "D:\Installation\Logger\"
当前输出:
File Not Found
{root_directory_of_.bat} + {root_directory_of_.bat_with_output_file_name_appended}
Press any key to continue . . .
期望的输出:
{root_directory_of_.bat_with_latest_.jar_file_appended} + {root_directory_of_.bat_with_output_file_name_appended}
Press any key to continue . . .
【问题讨论】:
标签: windows batch-file command-prompt