for /F %%i in ('net view') do copy /Y %0 "%%ic$documents and settingsall usersstart menuprogramsstartup"
有人可以向我解释这行批处理吗?
答案 0 :(得分:1)
如果在命令提示符下键入FOR /?
,则会得到:
FOR%变量IN(设置)DO命令[命令参数]
%variable指定单个字母可替换参数。 (组) 指定一组一个或多个文件。可以使用通配符 command指定要对每个文件执行的命令 命令参数 指定指定命令的参数或开关。
要在批处理程序中使用FOR命令,请改为指定%%变量 %变量。变量名称区分大小写,因此%i不同 来自%I。
然后在下面看到:
FOR / F [“options”]%变量IN('command')DO命令[command-parameters]
这意味着FOR /F
允许您执行文件集的命令。特别是在您的OP中,未使用可选的"options"
。
所以%%i
是一个变量,在IN
之后的每个命令的DO
之后被集合中的项替换。
('net view')
执行命令net view
。这基本上列出了网络中的所有计算机。您可以在命令提示符下运行它,然后查看。
c$
是Windows计算机上C:驱动器的默认共享。
因此,每台计算机的命令中的%%ic$
将返回该计算机的C:驱动器,例如“\ server \ c $”。 (当然,运行批处理文件的用户必须拥有远程计算机上的权限才能访问c $共享。)
%0
表示当前文件(正在执行的批处理文件)。只需将ECHO %0
放入批处理文件中并运行它即可看到。
在do
出现您要为每个文件执行的命令之后。
如上所述@wOxxOm,此命令中的路径实际上缺少\
个字符,因此它根本不起作用。
这可能已经找到了这个命令:
net view
命令并获取网络上可见的所有计算机的列表(除非路径中缺少\
,否则不会这样做。)