我想做的事:
我基本上是想在命令中添加类似这样的内容:“如果 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 部分,然后只需键入包含此答案中第一个示例内容的批处理文件的名称。
编辑:根据新提供的信息,似乎找不到您的批处理文件,而不是重命名错误。如果您将批处理文件直接复制到文件夹中,然后启动它,它会起作用吗?这不是永久性的修复,只是一个确认批处理文件位于错误文件夹中的步骤。