2012-05-01 22 views
0

中的文件,所以我想弄清楚这一点,我不认为我的脚本技能达到标准。 :(需要帮助创建一个批处理文件来调用联网服务器列表,并找到每个

基本上就是我想要做的就是这个。

有一个脚本调用一个文件,该文件有我想看看通过成员服务器的列表。我想搜索文件在这些服务器中的每一个,然后吐出一个日志,其中列出了文件的路径。

所以..例如要被引用的文件是text.txt,并且文件列表服务器1,2内,3.

我想扫描此路径中的每个服务器c:\temp\所有子目录和寻找file.exe

然后吐出显示的服务器和file.exe

server1 c:\temp\dir1\file.exe 
server2 c:\temp\dir3\dir5\file.exe 

任何人的其路径位置日志??? :(

在此先感谢!

这是我到目前为止已经完成了...

@ECHO OFF 
SET FLNM=file.exe 
SET DRV=c 
SET DIRS=temp 
IF NOT DEFINED FLNM GOTO NAME 
IF /I "%FLNM%"=="/Q" GOTO :EOF 
SET FLNM=%FLNM: =.% 
:DV 
IF NOT DEFINED DRV GOTO DV 
IF EXIST RESULTS.TXT DEL RESULTS.TXT 
IF DEFINED DIRS SET DIRS=%DIRS: =.% 
FOR %%D IN (%DRV%) DO (
    FOR %%G IN (%FLNM%) DO (
     IF DEFINED DIRS (
      FOR %%C IN (%DIRS%) DO (
       DIR %%D:\ /L /B /S|FINDSTR /I /E \%%C.\%%G>>RESULTS.TXT 
      ) 
     ) ELSE (
      DIR %%D:\ /L /B /S|FINDSTR /I /E \%%G>>RESULTS.TXT 
     ) 
    ) 
) 
CALL :ZEROBYTE RESULTS.TXT 
IF NOT EXIST RESULTS.TXT ECHO:"FILES NOT FOUND">>RESULTS.TXT 
START NOTEPAD RESULTS.TXT 
EXIT /B 
:ZEROBYTE 
IF %~Z1==0 DEL RESULTS.TXT 
GOTO :EOF 

我能得到这个在每个本地运行,但我宁愿跑它的中心。还我似乎无法得到它下的所有目录看,如果我列出一个目录,它只是只有根内扫描

+0

这在我看来是服务器故障的情况。另外,你到目前为止尝试过什么? – devsnd

+0

所以我有这个。 – user1368790

+0

请将它添加到您的问题。 – devsnd

回答

1

如果test.txt的格式如下:。

server1 
server2 
server3 

,那么你可以这样做:

for /f %s in (test.txt) do dir/s/b \\%s\c$\temp\file.exe 

请注意,您必须是域管理员为远程Windows做到这一点VISTA/7/Server 2008中/ R2的计算机,但对于Windows 2000/XP /服务器2003你只需要拥有每台PC的本地管理员权限。

或者,您可以在每台PC上共享临时文件夹,例如使用net share temp$=C:\temp,然后您可以使用\\%s\temp$\file.exe,那么您只需要普通的共享和文件权限。

+0

这是很好的。域管理员将有权访问您的管理共享(C $,D $等),这将做你需要:) – iesou

+0

fantastically工作!谢谢! – user1368790

相关问题