Windows 批处理文件:遍历网络共享
Windows Batch File: Looping through Network Shares
我有一个教室网络,其中所有机器都有一个遵循相同模式的共享文件夹。每个共享可以访问为:
\…\foo\bar\folder
这里foo
、bar
、folder
三个名字是固定的,只是计算机名不同
最终我打算将文件复制到上面的所有文件夹中。
问题是:如何遍历上面的所有共享名称?在命令 shell 中,我尝试了:
for %i in (\*\foo\bar\folder) do echo %i
但这对我不起作用。
谢谢
您可以尝试使用教室网络的IP地址来实现您的功能。
示例:
您的 IP 范围是 192.168.1.2 到 192.168.1.100
for /L %%a in (2,1,100) do (
if exist \192.168.1.%%a\foo\bar\folder (
your command
)
)
for /f "skip=3" %A in ('net view ^| findstr /v /C:"The command completed successfully"') do Echo %A
列出所有打开的计算机。您将 %A
放入您的复制命令而不是计算机名,例如
for /f "skip=3" %A in ('net view ^| findstr /v /C:"The command completed successfully"') do dir %A\C$
在批处理文件中使用 %%A
而不是 %A
我有一个教室网络,其中所有机器都有一个遵循相同模式的共享文件夹。每个共享可以访问为:
\…\foo\bar\folder
这里foo
、bar
、folder
三个名字是固定的,只是计算机名不同
最终我打算将文件复制到上面的所有文件夹中。
问题是:如何遍历上面的所有共享名称?在命令 shell 中,我尝试了:
for %i in (\*\foo\bar\folder) do echo %i
但这对我不起作用。
谢谢
您可以尝试使用教室网络的IP地址来实现您的功能。
示例: 您的 IP 范围是 192.168.1.2 到 192.168.1.100
for /L %%a in (2,1,100) do (
if exist \192.168.1.%%a\foo\bar\folder (
your command
)
)
for /f "skip=3" %A in ('net view ^| findstr /v /C:"The command completed successfully"') do Echo %A
列出所有打开的计算机。您将 %A
放入您的复制命令而不是计算机名,例如
for /f "skip=3" %A in ('net view ^| findstr /v /C:"The command completed successfully"') do dir %A\C$
在批处理文件中使用 %%A
而不是 %A