如何在父目录下创建重复目录,然后在 Windows 中重命名文件父名称

如何在父目录下创建重复目录,然后在 Windows 中重命名文件父名称

我正在尝试将一个拼凑起来的 Linux 脚本转换为 Windows 命令行。所以,下面是我的脚本,虽然不优雅,但不知何故它可以工作。

rar a -r0 boomer.rar
#combines all the files into a rar file
mkdir 'rar - '"${PWD##*/}"
#makes a new sub-dir named the same as parent with "rar - " prepended
cp boomer.rar 'rar - '"${PWD##*/}"
#copies boomer.rar to the new folder (see below*)
rm boomer.rar
#removes rar file *becuse I couldn't just get it to move in linux
cd 'rar - '"${PWD##*/}"
# move focus to new dir
for fname in *.rar
do
mv $fname 'boomer - '"$(pwgen 26 1).rar"
done
#renames files 

编辑:

[添加此部分以解释我想要完成的任务。此脚本的目的是将文件夹中的所有文件压缩成 rar。例如 c:\boomer\egret 这会创建 boomer.rar 创建一个名为“rar - egret”的新文件夹 C:\boomer\egret\rar - egret boomer.rar 被复制到“rar - egret”并删除 将目录更改为“rar - egret” 将 boomer.rar 重命名为“boomer - ahs7Ahxei2imah4tubiqu1eY2i.rar” 然后整个“rar- egret”文件夹稍后将被移动到存储位置。]

我不知道该怎么做“${PWD##*/}”。我需要这方面的帮助,只获取目录名称,而不是路径。

我根本不是程序员。这些都是从论坛上研究步骤拼凑起来的。我一无所知,也不理解我使用的代码。对不起,但有时猴子会按到正确的键。

我的朋友圈成员要求我在 Windows 上实现这个功能。我在这里使用最低标准,所以是批处理文件。没有安装 WSL,只有原始 Windows。

如果太难,我也可以接受。如果需要更多信息,我会提供尽可能多的信息,但我不知道,除非有人告诉我。

答案1

我们不应该为您编写代码。

下面是关于如何编写的提示,希望您能够遵循。

第一个命令(mkdir)只能用一个小程序来完成,所以我把它包括在这里,其余的将是关于如何自己编写的建议,我希望这有意义。

好的,据我所知,没有变量分配直接父文件夹的名称,但这仍然可以完成。您的第一行必须替换为以下内容:

call :Makedir

然后将此例程添加到脚本的底部:

:MakeDir

set _dir=%~p0

SET _dir2=%_dir:\= %

call :FindParent %_dir2:~1,-1%

mkdir "rar - %Parent%"

goto :eof

:FindParent

if "%1"=="" goto :eof

set Parent=%1 & shift & goto :FindParent

...这将为您创建目录。其余部分您必须自己编写,但以下是方法:

下一行将cp被替换,copy并且可能会添加一个“/y”,因此请尝试copy /y替换“cp”。从命令行尝试copy /?获取详细信息。

下一行将rm被替换为del /y,并且可能会添加“/f”,因此请尝试del /y /f替换rm。从命令行尝试del /?获取详细信息。

您仍然需要将文件移动到目标位置,'mv' 的等效项很简单move(有关详细信息),并使用 %rnd% 来生成随机字符。CMD中move /?没有等效项。pwgen

我希望这些足以让你弄清楚一切。这是可以做到的,但我不能为你写出一切。

相关内容