Board logo

标题: [其他] 为啥批处理命令 for / d 对远程路径不支持? [打印本页]

作者: 吕麟    时间: 2014-6-4 18:01     标题: 为啥批处理命令 for / d 对远程路径不支持?

请教一下
如果 for /d %%i in (c:\*) do (echo %%i) 可以执行成功
如果 for /d %%i in (\\10.2.48.166\*) do (echo %%i)则不行
为啥?
作者: CrLf    时间: 2014-6-4 18:17

  1. for /f "delims=" %%a in ('dir \\10.2.48.166\*') do echo %%i
复制代码

作者: vmzlv    时间: 2014-6-4 22:50

或者试试网络磁盘映射。
作者: 吕麟    时间: 2014-6-5 10:13

回复 2# CrLf


二楼你害死我了
for /d %%i in (c:\*) do (echo %%i)---这一句只列出当前的目录
for /f "delims=" %%a in ('dir \\10.2.48.166\*') do echo %%i---这一句要过滤不说,主要是还包含当前目录和上一级的目录
我的do中包含一个删除操作,本意是希望删除指定目录下的符合条件的文件,没想到删除了当前目录及上一级目录!
作者: Batcher    时间: 2014-6-5 10:23

回复 4# 吕麟


    能否把2楼代码的执行结果发出来看看
作者: 吕麟    时间: 2014-6-5 14:27

回复 5# Batcher
\\10.2.48.201\everyone\lvy下有两个目录'1'和'2',这是2楼执行的结果
驱动器 \\10.2.48.201\everyone 中的卷是 DATAPART1
卷的序列号是 7E69-BAF0
\\10.2.48.201\everyone\lvy 的目录
2014-06-05  14:18    <DIR>          .
2014-06-05  14:18    <DIR>          ..
2014-06-05  14:18    <DIR>          1
2014-06-05  14:18    <DIR>          2
               0 个文件              0 字节
               4 个目录 157,231,357,952 可用字节
------------------------------------------------------
E:\批处理下有两个目录'1'和'2',这是1楼执行的结果
E:\批处理\1
E:\批处理\2
------------------------------------------------------
一个返回了4个目录,一个返回了2个目录
作者: 吕麟    时间: 2014-6-5 15:36

本帖最后由 吕麟 于 2014-6-5 15:38 编辑

好吧,我知道了 应该用
for /f "delims=" %%i in ('dir /ad /b \\10.2.48.166\*') do echo %%i
可是文件已经被删了啊!
作者: CrLf    时间: 2014-6-5 22:10

...........
好吧确实漏了 /b,但像删除移动格式化这类危险的动作应该先测试再执行啊
只好用恢复工具尝试恢复了




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2