在 .bat/.cmd 脚本中重命名文件而不指定目录

在 .bat/.cmd 脚本中重命名文件而不指定目录

我想做的事:

我基本上是想在命令中添加类似这样的内容:“如果 haha​​.txt 存在,则重命名为 lol.txt”。但是,许多不同的目录中会有很多 haha​​.txt 文件,为了使它正常工作,我需要能够运行此命令,并让它仅重命名当前目录中的 haha​​.txt 文件。但是,在我所有的尝试中,它似乎总是希望我准确指定文件所在的位置,这是行不通的。(也许是因为命令在路径中,而不是这个文件夹中?)

所以问题是:

有没有办法在批处理文件中使用RENAME/REN命令而不指定目录,而是在当前目录中重命名?

编辑:根据要求,这是我的脚本(删除了所有对我们来说不重要的内容)

此外,还有一些其他信息:

  • 名称:SSHCrack.cmd
  • 打开方式:打开命令提示符,转到包含 uncrackedSSH.txt 的文件夹,然后输入 SSHCrack 22
  • 目的:将 uncrackedSSH.txt 重命名为 crackedSSH.txt
  • 位于: 路径

脚本:

@echo off
title SSHCrack
set x=%1

if not defined x goto unknown

if %x%==22 (
goto correct
) else (
goto wrong
)

:correct
echo SSHCrack running...
if exist uncrackedSSH.txt (
ren uncrackedSSH.txt crackedSSH.txt
echo -- SSHCrack Complete --
goto end
)

if exist crackedSSH.txt (
echo SecureShell port already open
goto end
) else (
echo SecureShell port not found
goto end
)
:unknown
echo Please specify a port number
goto end
:wrong
echo Wrong port number
:end
title cmd.exe

我尝试过使用“ren .\uncrackedSSH.txt crackedSSH.txt”,使用“cd %cd%”链接到当前目录,尝试过使用“cd /d C:\SpecificFolder”直接链接到特定文件夹,并尝试将.bat 文件放在与 uncrackedSSH.txt 相同的文件夹中并从那里运行它,但我最终总是收到:

SSHCrack Running...
The system cannot find the file specified.
-- SSHCrack Complete --

每当我进入该文件夹时,uncrackedSSH.txt 的名称都没有改变。

答案1

批处理文件只会重命名当前文件夹中的文件。

很简单:

ren haha.txt lol.txt

就够了。无需指定文件夹。

如果出现无法找到 haha​​.txt 的错误,请确保路径正确。您可以先导航到正确的文件夹,然后重命名。例如:

cd /d c:\temp
ren haha.txt lol.txt

因此,如果批处理文件不在 c:\temp 中,则需要使用 cd 命令,或者如果将批处理文件放在路径环境变量的文件夹中,例如 c:\windows\system32,则可以启动命令提示符,自己执行 cd 部分,然后只需键入包含此答案中第一个示例内容的批处理文件的名称。

编辑:根据新提供的信息,似乎找不到您的批处理文件,而不是重命名错误。如果您将批处理文件直接复制到文件夹中,然后启动它,它会起作用吗?这不是永久性的修复,只是一个确认批处理文件位于错误文件夹中的步骤。

相关内容