【问题标题】:How to rename a folder on flash drive using a batch file如何使用批处理文件重命名闪存驱动器上的文件夹
【发布时间】:2015-09-01 14:50:58
【问题描述】:

我正在尝试制作一个批处理文件,它将文件夹的内容备份到我的闪存驱动器上,并重命名闪存驱动器上的前一个文件夹。这是代码。

@echo off
echo Are you sure you want to erase the previous backup file? (Y,N)
set /p ans=
if %ans%==Y goto Backup 
goto Exit
:Backup
rd "E:\Batch\BFiles Backup" /s
ren "E:\Batch\BFiles" "BFiles Backup"
:Copy
mkdir E:\Batch\BFiles
xcopy C:\Users\Habib\Documents\BFiles /E /Y E:\Batch\BFiles
echo Files have successfully been copied!
pause
:Exit
exit

当我运行批处理文件时,它会复制文件但不会重命名已经存在的文件夹,因为“访问被拒绝”。我已经尝试在管理员版本的 Cmd 中运行它,但它仍然无法正常工作。我的用户也是管理员,所以我不知道为什么访问被拒绝。

【问题讨论】:

  • 请格式化您的代码并将其放入代码块中。
  • 如果您使用move 而不是ren 会怎样?顺便说一句,您收到拒绝访问消息的原因可能是正在使用的文件。
  • 批处理文件存放在哪里?
  • ren "E:\Batch\BFiles" "BFiles Backup" 应该是ren "E:\Batch\BFiles" "E:\Batch\BFiles Backup"
  • ren "E:\Batch\BFiles" "BFiles Backup" 一起工作得很好

标签: batch-file cmd


【解决方案1】:

首先,移除你的@ECHO OFF,直到你调试完你的代码..

添加 PAUSE 语句,以便您可以停下来看看发生了什么......

让我们重新格式化一下你的代码..

ECHO Are you sure you want to erase the previous backup file? (Y,N)
set /p ans=
if %ans%==Y goto Backup 
PAUSE
goto Exit
:Backup
PAUSE
IF EXIST "E:\Batch\BFiles Backup\." rd "E:\Batch\BFiles Backup" /s
PAUSE
IF NOT EXIST "E:\Batch\BFiles Backup\." ren "E:\Batch\BFiles" "BFiles Backup"
PAUSE
:Copy
IF NOT EXIST "E:\Batch\BFiles\." mkdir E:\Batch\BFiles
PAUSE
xcopy C:\Users\Habib\Documents\BFiles /E /Y E:\Batch\BFiles
IF errorlevel 0 echo Files have successfully been copied!
pause
:Exit
exit

然后,当事情开始看起来正确时,将 PAUSE 语句一一删除...

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-22
    • 1970-01-01
    • 2022-08-10
    • 2013-11-19
    • 1970-01-01
    • 2011-03-02
    • 1970-01-01
    相关资源
    最近更新 更多