CMD命令用于查找文件并对此文件执行某些操作

时间:2014-04-08 20:56:30

标签: batch-file cmd

我想使用批处理文件在我的系统中查找文件并使用它。

我可以用

dir filename /s /p 

找到位置。

例如,如果我运行以下

C:\Users\test>dir somejar.jar /s /p
 Volume in drive C is OS
 Volume Serial Number is 981C-D5F0

 Directory of C:\Users\test\.gradle\caches\artifacts-24\filestore\org.something\jar\1bd8c9fd8aee6dcac27f6d727a15eb7c65532e0

07/04/14  07:35 p.m.         2,530,874 somejar.jar
               1 File(s)      2,530,874 bytes

     Total Files Listed:
               1 File(s)      2,530,874 bytes
               0 Dir(s)  194,490,933,248 bytes free

C:\Users\test>

如何制作批处理文件,一旦打开它,它会找到该文件并将其目录更改为文件所在的位置并使用此文件?

谢谢。

1 个答案:

答案 0 :(得分:1)

你可以尝试

for /F "delims=" %s in ('dir /s /b filename') do cd "%s\.."

在命令行上或由%s替换%%s以在批处理文件中使用。工作原理:

  1. 它使用了您提出的dir /s,但没有分页。相反,我使用简单的输出格式(裸)/b来获取文件名。
  2. 因为我们不能简单地将其(|)传递给cd,所以我们需要奇怪的for命令。确保for未以反斜杠(/F "delims=")开始分割。
  3. 因为我们获取文件名但是想要目录,所以使用\..上升一级(从文件到目录)。