如何在 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 資料夾中的所有檔案。 EX 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” movemove /?詳細資料),並使用 %rnd% 產生隨機字元。pwgenCMD 中沒有等效項。

我希望這足以讓你弄清楚這一切。可以做,但是我不可以全部寫給你。

相關內容