부모 아래에 중복 디렉터리를 만든 다음 Windows에서 파일 부모 이름을 바꾸는 방법

부모 아래에 중복 디렉터리를 만든 다음 Windows에서 파일 부모 이름을 바꾸는 방법

kluged together 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

...그것이 당신을 위한 디렉토리를 만들어 줄 것입니다. 나머지는 직접 작성해야 하지만 접근 방법은 다음과 같습니다.

다음 줄에서는 "/y" cp로 대체되거나 copy포함될 수 있으므로 copy /y'cp' 대신 시도해 보세요. 명령줄에서 copy /?자세한 내용을 확인해보세요.

다음 줄에서는 가 "/f" rm로 대체되거나 포함될 수 있으므로 . 명령줄에서 자세한 내용을 확인해보세요.del /ydel /y /frmdel /?

여전히 파일을 대상으로 이동해야 합니다. 'mv'에 해당하는 것은 간단합니다 move( move /?자세한 내용은). 임의의 문자를 생성하려면 %rnd%를 사용합니다. pwgenCMD에는 이에 상응하는 것이 없습니다 .

나는 그것이 당신이 모든 것을 알아내는 데 충분하기를 바랍니다. 할 수는 있지만 당신을 위해 그 모든 것을 쓸 수는 없습니다.

관련 정보