我需要访问几个服务器,找到某个文件并将其复制到我的计算机上
(插入的路径是常规路径。它还会查找子文件夹)。如果我为每台服务器分配一封信,或者使用pushd命令,并且计算机自动为每台计算机分配一封信件,则以下代码可以做到这一点
但是,我如何在不使用任何字母或分配新字母的情况下使用以下代码,只根据服务器名称(相当于cd\192.168.1.153\Contracte)
代码:
SET destination=%CD%
cd \192.168.1.153ContractecontracteCONTRACTE NEVOI PERSONALEContracte nevoi personale 107501N - 110000N
for /f "delims=" %%a in ('dir /b /s ^| find "107720"') do (
cd ..
xcopy "%%a" "%destination%CtrExtrase107720NA" /E /D /Y )
@ECHO ---
pause
CD
不支持UNC,您已经注意到了吗。
但您根本不需要更改当前目录:
SET remotefolder=\192.168.1.153ContractecontracteCONTRACTE NEVOI PERSONALEContracte nevoi personale 107501N - 110000N
for /f "delims=" %%a in ('dir %remotefolder%*107720* /b /s') do (
xcopy "%%a" "CtrExtrase107720NA" /E /D /Y
)
此外,您可以在dir
命令中指定搜索词,而不必管道连接到find
。
尝试将其与网络使用进行映射:net use s: \192.168.1.153Contracte
,然后是cd /d "s:contracteCONTRACTE NEVOI PERSONALEContracte nevoi personale 107501N - 110000N"
要查找可用驱动器号,请检查以下内容:http://ss64.org/viewtopic.php?id=410