배치 파일을 사용하여 기본 폴더에 넣고 싶지만 계정 이름은 폴더 중간에 있습니다. dos 명령 프롬프트에서 사용할 수있는 스크립트가 있습니까?DOS 배치 파일 - 파일 이름을 기반으로 파일을 폴더에 복사
888123AA.pdf
888123BB.pdf
888123CC.pdf
777456AA.pdf
777456BB.pdf
777456CC.pdf
기본 폴더 :
999-888123-03
666-777456-01
배치 파일을 사용하여 기본 폴더에 넣고 싶지만 계정 이름은 폴더 중간에 있습니다. dos 명령 프롬프트에서 사용할 수있는 스크립트가 있습니까?DOS 배치 파일 - 파일 이름을 기반으로 파일을 폴더에 복사
888123AA.pdf
888123BB.pdf
888123CC.pdf
777456AA.pdf
777456BB.pdf
777456CC.pdf
기본 폴더 :
999-888123-03
666-777456-01
나는 그것이 UNIX 쉘 이외의 ... 어쩌면 MSYS를 얻을 수 있도록 그 (오래된) bash는 사용 할 수있는 명백한 방법을 기억하지?
여기 MSYS에서 bash를 설치 한 후 사용할 수있는 bash 스크립트가 있습니다 (또는 Linux 상자로 정렬 할 수 있습니다 - 우분투는 800MB 이하이고 현재 Windows 시스템을 방해하지 않고 LiveCD로 실행할 수 있으며 LiveCD . 필요할 때 :-) 시스템 보호기로
#!/bin/bash
for each in ./*; do
if [ -d $each ]; then # Only folders are minded.
# Extract the second part of the folder name.
ACCOUNT_NAME=`echo $each | sed "s/\\-/\n/" | head -n 2 | tail -n 1`
cp -v ./$ACCOUNT_NAME*.pdf $each
fi
done
@echo off
setlocal EnableDelayedExpansion
rem Process all .pdf files
for %%a in (*.pdf) do (
rem Get just the file name, ie: "888123AA"
set fileName=%%~Na
rem Using the file name minus two last chars, ie: "888123"
rem get the default folder with that name
for /D %%b in (*-!fileName:~0,-2!-*) do (
rem And copy the file to that folder
copy "%%a" "%%b"
)
)
아래의 아이디어와 조언을 두배로 할 수있다 : 배치 매개 변수의 경로 운영자의 다음 사용을 대체가 무효 % ~ 나 올바른 형식의 경우 CALL /? 또는 FOR /? 명령 구문이 잘못되었습니다. – user2389248
이 '%% ~ Na'사용 – foxidrive
죄송합니다! 오타 였어! 지금 해결 ... – Aacini