更改多个文件批处理文件不起作用

时间:2016-05-09 15:11:08

标签: batch-file

这是我用命令行开始练习的一个非常简单的批处理文件,但由于某种原因它无法正常工作。代码如下:

::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” ,这不好。我已经尝试了一些我的条目的替代品,但我从来没有设法得到所需的目录。

感谢您的任何建议。

1 个答案:

答案 0 :(得分:1)

你的部分问题是,在Batch中,你不应该在设置变量时使用空格或引号,否则它们将成为变量的一部分。与许多语言不同,Batch会将所有空格字符作为代码的一部分进行读取。在这种情况下,变量的名称设置为%DirLoc %,而不仅仅是%DirLoc%。为了使代码以您希望的方式工作,您需要删除代码中的所有不需要的空格和引号。

例如: set /p DirLoc = "Enter file location:"变为set /p DirLoc=Enter file location:

要查看此证明,请尝试在echo %DirLoc %之后立即编写echo %DirLoc%并运行代码。