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

[文件操作] BAT批量重命名SMB共享目录的疑问

[复制链接]
发表于 2020-5-20 14:28:49 | 显示全部楼层 |阅读模式
公司文件共享服务器内的D:\00Product下,一些目录会经常需要修改目录名。目前的方式为让他们自助填写renameproject.txt的内容,然后脚本定期执行。

目前脚本如下,缺点是目标目录(!newfn!)已经存在时,也会把该目录已经打开的文件session关闭。所以想把第七句 for /f ……移到第八句,当!newfn!不存在时,才执行for /f "delims=," %%a in ('openfiles /query /fo csv ^| findstr !oldfn!') do net file %%a /close

试着整合了一下7、8两条语句但是不成功。望指点,谢谢!

  1. @echo off
  2. setlocal EnableDelayedExpansion
  3. cd /d D:\00Product
  4. for /f "tokens=1,2 skip=2" %%i in (RenameProject.txt) do (
  5. set oldfn=%%i
  6. set newfn=%%j
  7. for /f "delims=," %%a in ('openfiles /query /fo csv ^| findstr !oldfn!') do net file %%a /close
  8. if not exist !newfn! rename !oldfn! !newfn!)
  9. )
复制代码
Renameproject内容如下
type D:\00Product\RenameProject.txt
###每行一个目录旧名称和新名称,按TAB分隔,本行和下一行不要删###
OldName NewName
CAF01695M00A    CAF01695M00B
发表于 2020-5-20 15:02:33 | 显示全部楼层
会用FOR的太牛B了,
无法帮你,水平不行
发表于 2020-5-20 15:20:11 | 显示全部楼层
回复 1# n度自由
  1. @echo off
  2. setlocal EnableDelayedExpansion
  3. cd /d "D:\00Product"
  4. for /f "tokens=1,2 skip=2" %%i in ('type "RenameProject.txt"') do (
  5.     set "oldfn=%%i"
  6.     set "newfn=%%j"
  7.     if not exist "!newfn!" (
  8.         for /f "delims=," %%a in ('openfiles /query /fo csv ^| findstr "!oldfn!"') do (
  9.             net file %%a /close
  10.         )
  11.         ren "!oldfn!" "!newfn!"
  12.     )
  13. )
复制代码
 楼主| 发表于 2020-5-20 15:30:47 | 显示全部楼层
@echo off
setlocal EnableDelayedExpansion
cd /d "D:\00Product"
for /f "tokens=1,2 skip=2" %%i in ('type "RenameProject.txt"") do (
    set "oldfn=%%i"
    set "newfn=%%j"
    if not exist "!newfn!" (
        for /f "delims=," %%a in ('openfiles /query /fo csv ^| findstr "!oldfn!"') do (
            net file %%a /close
        )
        ren "!oldfn!" "!newfn!"
    )
)

多谢版主,红色标记部分是否应为' ?
发表于 2020-5-20 16:09:58 | 显示全部楼层
回复 4# n度自由


    是的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 18:13 , Processed in 0.017660 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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