
我正在嘗試將拼湊在一起的 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” move
(move /?
詳細資料),並使用 %rnd% 產生隨機字元。pwgen
CMD 中沒有等效項。
我希望這足以讓你弄清楚這一切。可以做,但是我不可以全部寫給你。