这是我用命令行开始练习的一个非常简单的批处理文件,但由于某种原因它无法正常工作。代码如下:
::Change names
@echo off
set /p DirLoc = "Enter file location:"
cd %DirLoc%
echo %DirLoc%
dir
set /p SetFrom = "What file type is it?"
set /P SetTo = "What file type do you want?"
echo Change from %SetFrom%
echo to %SetTo%
rename *.%SetFrom% *.%SetTo%
echo process has been completed
pause
echo on
出于某种原因,当我插入文件夹位置(在我的情况下是“C:\ Users \ Marco DS \ Desktop \ Test”)时,程序将只到“C:\ Users \ Marco DS \ Desktop” ,这不好。我已经尝试了一些我的条目的替代品,但我从来没有设法得到所需的目录。
感谢您的任何建议。
答案 0 :(得分:1)
你的部分问题是,在Batch中,你不应该在设置变量时使用空格或引号,否则它们将成为变量的一部分。与许多语言不同,Batch会将所有空格字符作为代码的一部分进行读取。在这种情况下,变量的名称设置为%DirLoc %
,而不仅仅是%DirLoc%
。为了使代码以您希望的方式工作,您需要删除代码中的所有不需要的空格和引号。
例如:
set /p DirLoc = "Enter file location:"
变为set /p DirLoc=Enter file location:
要查看此证明,请尝试在echo %DirLoc %
之后立即编写echo %DirLoc%
并运行代码。