모든 회사 PC와 노트북에 즐겨찾기를 설치하는 배치 파일을 만들려고 합니다.
을 사용하여 CMD에서 디렉토리를 변경할 수 있습니까 shell:favorites
?
노트북에서는 즐겨찾기가 로컬로 저장되고 C:\%userprofile%\Favorites
데스크톱에도 %userprofile%
일반적으로 저장되지만 C:\ drive
즐겨찾기는 홈 드라이브에 저장되기 때문에 이것이 필요합니다. 우리는 H:\
드라이브 매핑과 같은 문자를 사용하지 않고 네트워크 바로 가기만 사용합니다. 이것이 제가 이 작업을 수행하기 위해 열심히 노력하는 이유입니다.
우리는 국가마다 서버가 다르기 때문에 로컬 서버에 대한 네트워크 경로에 따라 모든 국가에 대한 배치 스크립트를 조정하고 싶지 않습니다.
답변1
Powershell을 사용하여 수행 할 수 있습니다
cd ([Environment]::GetFolderPath("Favorites"))
답변2
도우미 스크립트
명령행 처리기는 일부를 지원합니다.환경 변수시스템 및 사용자 경로용 또는 이를 구축하는 데 도움이 될 수 있습니다. 그들은:
ALLUSERSPROFILE
APPDATA
CommonProgramFiles
CommonProgramFiles(x86)
CommonProgramW6432
COMPUTERNAME
HOMEDRIVE
HOMEPATH
LOCALAPPDATA
LOGONSERVER
ProgramData
ProgramFiles
ProgramFiles(x86)
ProgramW6432
PUBLIC
SystemDrive
SystemRoot
TEMP
TMP
USERDOMAIN
USERDOMAIN_ROAMINGPROFILE
USERNAME
USERPROFILE
windir
set | more
입력하면 할당된 값과 함께 전체 목록을 볼 수 있습니다 . 그러나 하나 이상의 변수를 결합하고 실제 경로를 수동으로 구축할 수 없다면 나열되지 않은 특정 경로를 얻는 기본 방법은 없습니다.
아래에서는 특정 경로와 관련된 경로를 검색할 수 있는 몇 가지 하이브리드 배치 스크립트를 찾을 수 있습니다.쉘 폴더. 두 코드 중 하나를 다른 이름으로 저장하세요 ShellHelper.cmd
(또는 원하는 대로 확장자를 유지하세요 .cmd
). 스크립트는 쉘 폴더 식별자(예: )인 단일 매개변수를 허용합니다 Favorites
. 그러면 경로가 변수에 저장됩니다 %shellFolder%
.
사용 예
ShellHelper.cmd Favorites >nul
if defined shellFolder pushd "%shellFolder%"
비고
Powershell 버전과 달리 VBScript 버전은 Windows 2000 이상에서 기본적으로 작동합니다. 특정 용도에 관해서는 두 버전 모두 가능합니다.
PowerShell은 Windows 7 이상에 기본 제공되지만 이전 운영 체제에서는 수동으로 설치해야 합니다.
VBScript 버전
여기에 사용된 하이브리드 기술을 고안하고 개선한 jeb과 dbenham이 주요 공로를 인정받았습니다.
REM^ &@echo off
REM^ &set shellFolder=
REM^ &if "%~1" == "" exit /b 2
REM^ &for /f "delims=" %%G in ('"cscript /nologo /e:vbscript "%~f0" %~1 "') do set shellFolder=%%~G
REM^ &exit /b
WScript.Echo WScript.CreateObject("WScript.Shell").SpecialFolders.Item(WScript.Arguments(0))
지원되는 식별자
AllUsersDesktop
AllUsersStartMenu
AllUsersPrograms
AllUsersStartup
Desktop
Favorites
Fonts
MyDocuments
NetHood
PrintHood
Recent
SendTo
StartMenu
Startup
Templates
메모마지막 줄을 다음으로 바꾸면 추가 셸 폴더를 지원할 수 있습니다.
WScript.Echo WScript.CreateObject("Shell.Application").Namespace(CLng(WScript.Arguments(0))).Self.Path
이 경우 특정 쉘 폴더 경로를 얻으려면 할당된 숫자 값을 전달해야 합니다. 예를 들어, 경로를 얻으려면 Favorites
사용해야 하는 값은 입니다 6
. 아래 링크된 문서에서 모든 값과 그 의미를 확인할 수 있습니다.
추가 읽기
파워셸 버전
@echo off
set shellFolder=
if "%~1" == "" exit /b 2
set _params=-NoLogo -NoProfile -Noninteractive -ExecutionPolicy Bypass
set _command="([Environment]::GetFolderPath('%~1'))"
for /f "usebackq delims=" %%G in (`powershell %_params% -Command %_command%`) do set shellFolder=%%~G
set _params=
set _command=
exit /b
지원되는 식별
ApplicationData
CommonApplicationData
CommonProgramFiles
Cookies
Desktop
DesktopDirectory
Favorites
History
InternetCache
LocalApplicationData
MyComputer
MyDocuments
MyMusic
MyPictures
Personal
ProgramFiles
Programs
Recent
SendTo
StartMenu
Startup
System
Templates
PowerShell 3.0/.NET Framework 4.0 이상
위의 식별자 외에도 다음도 사용할 수 있습니다.
AdminTools
CDBurning
CommonAdminTools
CommonDesktopDirectory
CommonDocuments
CommonMusic
CommonOemLinks
CommonPictures
CommonProgramFilesX86
CommonPrograms
CommonStartMenu
CommonStartup
CommonTemplates
CommonVideos
Fonts
LocalizedResources
MyVideos
NetworkShortcuts
PrinterShortcuts
ProgramFilesX86
Resources
SystemX86
UserProfile
Windows
메모사용 가능한 항목 목록을 얻으려면 PowerShell 콘솔에서 다음 명령을 실행할 수 있습니다.
[Enum]::GetNames('System.Environment+SpecialFolder') | Sort-Object