2014-04-08 32 views
0

我想使用批处理文件在我的系统中查找文件并使用它进行操作。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

你可以在命令行上尝试

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. 因为我们得到文件名,但想要目录,使用\..上升一级(从文件到目录)。
相关问题