작은 배경 ...
저는 Windows XP, Vista 및 7을 자주 사용합니다. 따라서 필자는 각 PC의 %appdata%
폴더에서 계속 내 프로그램 설정을 다음으로 이동해야합니다. 필자는 PowerShell 스크립트를 만들어이 작업을 수행하고 완료 한 후에 폴더를 제거하는 것이 내 문제를 덜어 줄 것이라고 생각했습니다. 나는 일반적으로 플래시 드라이브에 대한 작업을하고 있기 때문에 상대 경로를 사용하기를 바랬지 만 문제가되는 것 같지만 가장 큰 문제는 Powershell이 어떤 실수를했는지 충분히 이해하지 못하는 것입니다. 나는 그것을 만들고 고칠 방법을 만들고있다. 그래서 나는 여기에왔다.
두 개의 스크립트로 작업을 구분할 수 있다고 생각했습니다. 하나는 디렉토리를 배치하기위한 것이고 다른 하나는 원래의 폴더에 다시 복사하고 뒤에있는 모든 추적을 제거하기위한 것입니다. 나는 지금까지 내가 원하는 것을 보여줄 것이다. 나는 그들을 찾기가 더 어려울지도 모른다고 생각해서 거기에서 시작했다. 여기 내가 지금까지 가지고있는 것이있다. txt 파일을 사용하여 원하는 폴더 목록을 쉽게 업데이트 할 수 있으므로 전송 대상이되므로 변수에 의해 대상이 지정됩니다.PowerShell : 디렉터리 검색 및 구문 오류
$fldrtxt = Get-Content .\FolderList.txt
$dirget = -LiteralPath ="'%appdata%'\$_fldertxt"
$dirpost = "./Current"
# get-command | Add-Content .\"$today"_CommandList.txt
Set-Location c: {get-content $_dirget} | %{ copy-item $_dirpost}
실행 유틸리티를 사용할 때 사용하는 명령과 동일한 명령을 PowerShell에서 인식하지 못합니다. 내가 %appdata%
을 사용하여 어디에서 가져온 폴더를 참조 할 수 있는지 확신 할 수 있기 때문에 내가 원하는 것을이 스크립트에서 어떻게 작성할 수 있습니까? 세 컴퓨터 모두에 별도의 스크립트를 사용해야하므로 절대 경로를 사용할 수 있습니다. 그리고 나는 그것을 원하지 않는다.
PowerShell을 사용하여 원하는 작업을 수행하고 사용할 폴더를 어떻게 타겟팅합니까?
, 변수 네이밍은 PowerShell의 세계에서 혼란 스럽습니다. $ _dirget과 같은 변수는 많은 cmdlet이 "현재 파이프 라인에있는 개체"를 의미하는 특수 변수 $ _를 제공하기 때문에 이상하게 보입니다. 따라서 다음과 같은 것을 볼 수 있습니다 : get-process | foreach-object {$ _. PM/1KB} ... 이걸 감안할 때 $ _PM이라고 명명하는 것은 좋지 않은 아이디어입니다. –
구문 연습을 바꿀 것입니다. 머리를 가져 주셔서 감사합니다. –