首页 > 解决方案 > 批处理文件-命令-重命名文件夹的动态输入

问题描述

我想要求用户输入一次,让它找到文件夹,然后在找到后重命名它。无论我做什么,我都会收到语法错误

@ECHO off
cls

set /P FOLDER="What the Folder Name: "
rename "%userprofile%\Downloads\"%FOLDER%"" "%userprofile%\Downloads\"%FOLDER%" - %date:/=-%"
pause
cls
goto start

输出:

What the Folder Name: folder
The syntax of the command is incorrect.
Press any key to continue . . .

标签: batch-fileinput

解决方案


运行ren /?rename /?状态:

RENAME [drive:][path]filename1 filename2.
REN [drive:][path]filename1 filename2.

换句话说,我只期望新名称作为第二个参数。这将失败并出现语法错误:

ren "D:\My Folders\Old name" "D:\My Folders\New name"

这将在哪里执行重命名:

ren D:\My Folders\Old name" "New Name"

此外,您不需要有趣的引用。您只需将整个字符串引用一次,以确保cmd不会将空格视为命令/参数分隔符。所以这段代码应该做你想做的事:

@echo off & cls
set /p "FOLDER=What the Folder Name: "
rename "%userprofile%\Downloads\%FOLDER%" "%FOLDER%" - %date:/=-%"
pause
cls
goto start

说了这么多,你提到了动态。这里没有什么是动态的。这是对用户的所有静态请求,并希望得到有效结果的答案。所以你真的可以让这更加动态,但只有当我对你的要求有更多的细节时,我才能提供帮助。


推荐阅读