나는 .bat 파일을 클릭 할 때마다 현재 날짜로 이름을 바꾸도록 가르치려고합니다.파일의 이름이 바뀌지 않습니까?
누군가가 왜 작동하지 않는지 말할 수 있습니까?
@echo off
set timeme=%s%
RENAME %0 %timeme%.bat
나는 .bat 파일을 클릭 할 때마다 현재 날짜로 이름을 바꾸도록 가르치려고합니다.파일의 이름이 바뀌지 않습니까?
누군가가 왜 작동하지 않는지 말할 수 있습니까?
@echo off
set timeme=%s%
RENAME %0 %timeme%.bat
아마도 새로운 이름으로 복사하고 이전 파일을 새 파일의 첫 번째 문구로 삭제할 수 있습니다.
또는 원본 파일의 잠금을 해제하고 이름을 바꿀 때까지 기다리는 별도의 스크립트를 만들 수 있습니다. 이 스크립트를 원본 파일의 마지막 문으로 호출하십시오.
스크립트가 실행되는 동안 파일이 잠겨 있다고 생각합니다. 이름을 바꿀 수 없습니다. Word에서 문서를 연 경우와 같습니다. 당신이 할 수있는 최선은 복사입니다.
nope nevermind 나는 % random % 옵션을 사용하고있다. 나는 임의로 영숫자 인 – Meldrum
내 의견에 말했듯이, 이름 변경 부분은 잘 작동합니다. 그러나 오류 메시지가 생성되며 배치 스크립트는 이름을 바꾼 후 즉시 종료됩니다. 따라서 RENAME
명령은 스크립트의 마지막 명령이어야합니다. (이름 바꾸기 후에도 이름이 바뀌지 않으면 스크립트가 종료되지 않고 어떤 식 으로든 활용할 수 있지만 다른 이야기입니다.)
'가르치는 것'에 문제가 있다면, 귀하의 배치 스크립트 자체를 이름을 바꿀 수있는 방법, 그게 뭔가가 %s%
비트의 할 일이 있다고 가정해야합니다. 새 이름을 현재 날짜로 설정하려고 했으므로 그 부분이 문제의 원인 일 수 있습니다. 따라서 저는이 특정한 자기 이름 바꾸기에 대한 접근 방식을 여러분과 공유하기로했습니다. 여기
@ECHO OFF
SET timeme=%DATE:/=-%
SET timeme=%timeme: =-%
RENAME %0 %timeme%.bat
내가 DATE
환경 변수의 출력을 사용하고 있습니다 :
다음은 작업 예입니다. 이 변수의 출력은 로컬 설정에 따라 형식이 지정됩니다. 내 컴퓨터에서 그것은 ddd MM/dd/yyyy
으로 포맷되어 있으므로 %DATE%
은 Fri 04/22/2011
과 같은 것으로 평가됩니다.
출력을 단순히 사용하는 것이 아니라 일부 방법으로 처리하는 것을 볼 수 있습니다. 실제로 /
및 (공백)을
-
으로 바꿀 예정이므로 결과를 파일 이름으로 사용할 수 있으므로 큰 따옴표로 이름을 묶을 필요가 없습니다. %DATE%
출력을 확인하여 다른 문자를 대체해야하는지 확인해야 할 수도 있습니다.
하지만 출력을 다르게 사용하는 것이 좋습니다. 예를 들어, 년, 월, 일을 날짜 문자열에서 자르고 부분을 연결하고 결과 문자열을 새 이름으로 사용할 수 있습니다. 당신의 전부 또는 일부를 변경해야 할 수 있도록 다시
SET timeme=%DATE:~-4%%DATE:~4,2%%DATE:~7,2%
는,이 표현은, 내 날짜 표시 형식을 틀면 : 여기에 그것을 할 수있는 방법의 예입니다 (이것은
yyyyMMdd
의 형식으로 부품을 배치) 귀하의 환경에 적응시키기위한 숫자.
하위 문자열 추출 (이전 스크립트 예제에서와 같이 부분 문자열 대체에 대한 자세한 정보)을 얻으려면 언제든지 명령 프롬프트에서 HELP SET
을 발행 할 수 있습니다.
+1을 좋아하지만 선의로도 좋습니다. 자기 이름 바꾸기가 실제로 효과가 있었는지 몰랐습니다. –
나는 그 코드에서 AI의 명백한 부족이 범인이라고 말할 것이다. –
이름 자체가 나를 위해 작동한다. (나는'% s % '대신에 임의의 문자열을 사용했다.) –