![부모 아래에 중복 디렉터리를 만든 다음 Windows에서 파일 부모 이름을 바꾸는 방법](https://rvso.com/image/1605149/%EB%B6%80%EB%AA%A8%20%EC%95%84%EB%9E%98%EC%97%90%20%EC%A4%91%EB%B3%B5%20%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC%EB%A5%BC%20%EB%A7%8C%EB%93%A0%20%EB%8B%A4%EC%9D%8C%20Windows%EC%97%90%EC%84%9C%20%ED%8C%8C%EC%9D%BC%20%EB%B6%80%EB%AA%A8%20%EC%9D%B4%EB%A6%84%EC%9D%84%20%EB%B0%94%EA%BE%B8%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
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 /y
del /y /f
rm
del /?
여전히 파일을 대상으로 이동해야 합니다. 'mv'에 해당하는 것은 간단합니다 move
( move /?
자세한 내용은). 임의의 문자를 생성하려면 %rnd%를 사용합니다. pwgen
CMD에는 이에 상응하는 것이 없습니다 .
나는 그것이 당신이 모든 것을 알아내는 데 충분하기를 바랍니다. 할 수는 있지만 당신을 위해 그 모든 것을 쓸 수는 없습니다.