找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 29378|回复: 10

[文本处理] [已解決] 讓 bat 檔案在 UNC 路徑下運行

[复制链接]
发表于 2013-5-28 15:17:11 | 显示全部楼层 |阅读模式
本帖最后由 nickl 于 2013-5-29 14:47 编辑

各位大大,

小弟有個問題想請教, 小弟想要有條件地將大量檔案移動到不同資料夾
問題在之前已有大俠幫忙解決了.
http://bathome.l3.wuyou.com/viewthread.php?tid=24119

代碼為
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "tokens=*" %%a in ('dir /b /a-d *AA*.*') do (
  3.     set "str=%%a"
  4.     set "files=!str:~,5!"
  5.     for /f "tokens=*" %%b in ('dir /b /ad "!files!*" 2^>nul') do set "files=%%b"
  6.     md "!files!" 2>nul
  7.     move "%%a"  "!files!"

  8. )
  9. echo sorted
  10. pause
复制代码
小弟現在的問題是, 有辦法讓此代碼在 unc 路徑執行嗎?
假設我的路徑是 \\192.111.1.1\abc\nickl\sort

小弟試過用 set + " ", 但都不行, 不知是否那裡出錯
有大大可以幫忙嗎? 謝謝各位

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2013-5-28 16:31:46 | 显示全部楼层
请把你测试的完整代码贴出来看看
 楼主| 发表于 2013-5-28 16:48:42 | 显示全部楼层
回复 2# Batcher

如下:
  1. @echo off&setlocal enabledelayedexpansion
  2. set site="\\192.111.1.1\abc\nickl\sort"
  3. for /f "tokens=*" %%a in ('dir /b /a-d "%site%" *HK*.*') do (
  4.     set "str=%%a"
  5.     set "files=!str:~,5!"
  6.     for /f "tokens=*" %%b in ('dir /b /ad "%site%" "!files!*" 2^>nul') do set "files=%%b"
  7.     md "!files!" 2>nul
  8.     move "%%a"  "!files!"

  9. )
  10. echo The files have already sorted
  11. pause
复制代码
謝版大
发表于 2013-5-28 18:27:39 | 显示全部楼层
回复 3# nickl


把@echo off删掉,看看是哪一行在报错。
发表于 2013-5-28 23:19:16 | 显示全部楼层
不明真相,
试试
subst Z: "\\192.111.1.1\abc\nickl\sort"
然后访问你的Z:
发表于 2013-5-28 23:38:18 | 显示全部楼层
move "%%a"  "!files!"
其中%%a 和 files 都没有具体的路径,只有名字
不知道你是想从UNC复制到本地呢,还是反过来
 楼主| 发表于 2013-5-29 09:07:02 | 显示全部楼层
回复 6# cutebe
我只是想在unc 路徑中移動檔案
如由 \\192.111.1.1\abc\nickl\sort 移動至 \\192.111.1.1\abc\nickl\sort\01
 楼主| 发表于 2013-5-29 09:08:02 | 显示全部楼层
回复 4# Batcher
一運行,只閃了一下, 就消失掉了...
发表于 2013-5-29 11:11:21 | 显示全部楼层
回复 8# nickl


删除代码中的@echo off
代码保存为C:\test.bat
开始
运行
cmd
C:\test.bat
发表于 2013-5-29 11:33:29 | 显示全部楼层

根据理解的意思大概是这样子,测试好后去掉ECHO,

本帖最后由 cutebe 于 2013-5-29 13:00 编辑

  1. @echo off&setlocal enabledelayedexpansion
  2. set "site=\\192.111.1.1\abc\nickl\sort"
  3. for /f "DELIMS=" %%a in ('dir /b /a-d "%site%\*HK*.*"') do (
  4.     set "str=%%a"
  5.     set "files=!str:~,5!"
  6.     for /f "DELIMS=" %%b in ('dir /b /ad "%site%\!files!*" 2^>nul') do set "files=%%b"
  7.     ECHO,md "%SITE%\!files!" 2>nul
  8.     ECHO,move "%SITE%\%%a"  "%SITE%\!files!"
  9. )
  10. echo The files have already sorted
  11. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2013-5-29 14:47:08 | 显示全部楼层
cutebe 发表于 2013-5-29 11:33


成功了, 感謝
原來是引用路徑的問題, 每次也要引用
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 07:16 , Processed in 0.021568 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表