无忧启动论坛

标题: 一个批处理命令 [打印本页]

作者: 2011wky777    时间: 2012-3-28 08:22
标题: 一个批处理命令
     在硬盘(或U盘)的不同分区根目录存在2个相同的文件名,字节大小不一样,名称一样,例12345.exe,有没有一个批处理命令一下子把它们全部改为45678.exe ,原位置不变,求助,在此先谢谢了!
作者: 2011wky777    时间: 2012-3-28 08:37
分区个数不确定,有时插多个优盘
作者: dos时代菜鸟    时间: 2012-3-28 09:07
原帖由 2011wky777 于 2012-3-28 08:22 发表
     在硬盘(或U盘)的不同分区根目录存在2个相同的文件名,字节大小不一样,名称一样,例12345.exe,有没有一个批处理命令一下子把它们全部改为45678.exe ,原位置不变,求助,在此先谢谢了!



一句话搞定:

for %c in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do @(IF EXIST %c:\12345.exe ren %c:\12345.exe 45678.exe)

[ 本帖最后由 dos时代菜鸟 于 2012-3-28 09:13 编辑 ]
作者: 2011wky777    时间: 2012-3-28 09:24
楼主 试了不行啊  要换行吗   还是复制一下  直接运行?
作者: 网虫2008    时间: 2012-3-28 09:48
原帖由 2011wky777 于 2012-3-28 08:22 发表
     在硬盘(或U盘)的不同分区根目录存在2个相同的文件名,字节大小不一样,名称一样,例12345.exe,有没有一个批处理命令一下子把它们全部改为45678.exe ,原位置不变,求助,在此先谢谢了!



@echo off
PUSHD %~dp0
Set findfile=12345.exe
Set renfname=45678.exe
Set DelATTR=ATTRIB -S -H -R
For %%I In (C D E F G H I G K L M N O P Q R S T U V W ) Do If Exist "%%I:\%findfile%" (
  %DelATTR% "%%I:\%findfile%"
  Ren "%%I:\%findfile%" %renfname%
)
Exit
作者: dos时代菜鸟    时间: 2012-3-28 09:50
标题: 回复 #4 2011wky777 的帖子

你那个文件 到底叫什么名字?可能 存在空格,需要 用 引号把 文件名字包裹,不用换行,说了是 一句话。也 不用 写入 CMD 脚本中,直接 在 cmd 下运行就可以。

for %c in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do @(IF EXIST “%c:\12345.exe” ren “%c:\12345.exe” “45678.exe”)

嗯 ,楼上高见 ,文件还可能 有 属性加成。要用 attrib 去属性。

[ 本帖最后由 dos时代菜鸟 于 2012-3-28 09:53 编辑 ]
作者: 2011wky777    时间: 2012-3-28 09:51
试了  OK  谢谢大大的帮助,万分感激!
作者: 2011wky777    时间: 2012-3-28 09:59
不好意思 我在做一个保密的东西  请见谅我不说真的文件名了 先说声对不起!

再此谢谢大大热情邦助
作者: pznpt    时间: 2012-3-28 10:32
保存为BAT运行,在WinPE下不能用:
@echo off&setlocal enabledelayedexpansion
for /f "skip=1" %%a in ('wmic logicaldisk get deviceid') do (
    set drv=%%a
    set drv=!drv:~,2!
    if exist "!drv!\12345.exe" ren "!drv!\12345.exe" "45678.exe"
)
作者: 2011wky777    时间: 2012-3-28 12:58
能得到大大们的帮助,真是万分感激啊
作者: cz蓝宝    时间: 2014-1-18 01:10
5楼、6楼都可以是吧?!^_^ 试试先




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3