Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 批处理:调用目录中最近的批处理文件_Windows_Batch File_Directory - Fatal编程技术网

Windows 批处理:调用目录中最近的批处理文件

Windows 批处理:调用目录中最近的批处理文件,windows,batch-file,directory,Windows,Batch File,Directory,我看到了两个类似的问题,但我完全可以拼凑出我想要的。这很接近,因为它为我提供了最新批处理文件的名称: for /f "delims=" %%x in ('dir /od /b c:\maps\*.bat') do set recent=%%x echo %recent% 但是包含该文件的批处理文件位于c:\start中,因此我需要返回完整的路径名,而不仅仅是文件名。然后我可以使用“call”来运行批处理文件 (顺便说一句,我是在xp上这样做的。)如果您使用 for /f "delims="

我看到了两个类似的问题,但我完全可以拼凑出我想要的。这很接近,因为它为我提供了最新批处理文件的名称:

for /f "delims=" %%x in ('dir /od /b c:\maps\*.bat') do set recent=%%x
echo %recent%
但是包含该文件的批处理文件位于c:\start中,因此我需要返回完整的路径名,而不仅仅是文件名。然后我可以使用“call”来运行批处理文件

(顺便说一句,我是在xp上这样做的。)

如果您使用

 for /f "delims=" %%x in ('dir /od /b c:\maps\*.bat') do set recent=%%x
您肯定知道文件的完整路径将是
c:\maps\%%x


或者,如果改用
dir/s
,它将遍历所有现有子目录

for /f "delims=" %%x in ('dir /od /b /s c:\maps\*.bat') do set recent=%%x
但是返回完整路径会产生有趣的副作用,这将是
%%x

尝试使用:

for /f "delims=" %%x in ('dir /od /b /s c:\maps\*.bat') do set recent=%%x
echo %recent%

这比/s更适合我,后者性能较差:

for /f "delims=" %%x in ('dir /od /b c:\maps\*.bat') do set recent=%%~fx

您必须知道运行
dir
命令时的路径??太棒了!我想我的脚本将使用第二种方法。