[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

本帖最后由 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 + " ", 但都不行, 不知是否那裡出錯
有大大可以幫忙嗎? 謝謝各位
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

请把你测试的完整代码贴出来看看
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 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
复制代码
謝版大

TOP

回复 3# nickl


把@echo off删掉,看看是哪一行在报错。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

不明真相,
试试
subst Z: "\\192.111.1.1\abc\nickl\sort"
然后访问你的Z:

TOP

move "%%a"  "!files!"
其中%%a 和 files 都没有具体的路径,只有名字
不知道你是想从UNC复制到本地呢,还是反过来
如无特别说明,代码测试环境均为 XP SP3

TOP

回复 6# cutebe
我只是想在unc 路徑中移動檔案
如由 \\192.111.1.1\abc\nickl\sort 移動至 \\192.111.1.1\abc\nickl\sort\01

TOP

回复 4# Batcher
一運行,只閃了一下, 就消失掉了...

TOP

回复 8# nickl


删除代码中的@echo off
代码保存为C:\test.bat
开始
运行
cmd
C:\test.bat
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

根据理解的意思大概是这样子,测试好后去掉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

评分人数

如无特别说明,代码测试环境均为 XP SP3

TOP

cutebe 发表于 2013-5-29 11:33


成功了, 感謝
原來是引用路徑的問題, 每次也要引用

TOP

返回列表