Windows 배치 현재 작업 경로 변경 BAT

폴더에 있는 모든 파일 정보를 가져와 현재 디렉터리에 저장합니다.txt의 cmd 명령:
dir/s/b *.* > test.txt
테스트로 저장합니다.bat 파일을 두 번 클릭하고test.bat 후에 이 폴더 디렉터리에서 테스트를 생산합니다.txt, 모든 파일의 경로 정보를 포함합니다.
작업 계획 프로그램을 열고, 새로운 기본 작업을 만들고, 설치 절차를 만들고, 시작 프로그램을test로 설정합니다.bat
이 작업 실행을 오른쪽 단추로 눌러서test를 성공적으로 실행할 수 있는지 확인하십시오.bat
여기에 문제가 발생했습니다. 이 계획 작업이 완료되었음을 표시하지만, 방금 폴더의 경로에서test가 생성되지 않았습니다.txt 이 파일.
그리고 테스트를 수정해 보세요.txt의 경로 정보, 절대 경로를 사용한 다음 계획 작업을 다시 실행합니다
dir/s/b *.* > D:\test\test.txt
여전히 문제: 테스트지만.txt 파일은 확실히 생성되었지만, 안의 파일 정보는 현재 폴더 아래가 아니라 윈도우즈\시스템 32의 파일 정보입니다. 예를 들어 C:\윈도우즈\시스템 32\0409 등등.
문제는 현재 작업 경로입니다. 시스템이 작업을 계획할 때 기본 현재 작업 경로는 C:\WINDOWS\system32이므로 C:\WINDOWS\system32 아래의 파일 정보가 표시됩니다.
현재 작업 경로 수정:bat 파일에 줄을 추가하고bat가 있는 디렉터리를 현재 작업 경로로 설정합니다

cd /d %~dp0
dir /s /b *.* > test.txt 
이렇게 하면 이 문제를 완벽하게 해결할 수 있고, 계획 작업은 현재 폴더 아래의 모든 파일 정보를 얻기 위해 완벽하게 실행될 수 있다.
배치 파일을 사용하여 현재 작업 디렉토리를 변경하는 방법
I need some help in writing a batch file. I have a path stored in a variable root as follows:
set root=D:\Work\Root
Then I am changing my working directory to this root as follows:
cd %root%
When I execute this batch file from anywhere on the D drive this is done successfully. But when I execute the same batch file from some other drive, cd %root% doesn't work.
Is there a way I can get the drive letter from the root variable? I can then change the current directory to this drive first and then cd %root% shall work.

좋은 웹페이지 즐겨찾기