Как переместить ряд файлов в папку с помощью переменных в Powershell? - PullRequest
0 голосов
/ 06 ноября 2018

Я пытаюсь переместить ряд файлов в папку в Powershell. Мне удалось сделать это при явной ссылке на имя пути, но я не могу сделать то же самое при использовании имени переменной.

Это упрощенная версия моего кода.

files = Get-ChildItem C:\Users\edward.muldrew\Documents\35759175  
$pathDestination = "C:\Users\edward.muldrew\Documents\35759175\Test"
for ($i=0; $i -lt $files.Count; $i++) {
     $pathSource = "C:\Users\edward.muldrew\Documents\35759175\$files[$i]"
     Move-Item $pathSource -Destination $pathDestination

Любая помощь будет высоко ценится

Ответы [ 2 ]

0 голосов
/ 06 ноября 2018

В случае, если вам нужно просто переместить файлы. Используйте флаг whatif , чтобы увидеть, каким будет результат перед выполнением фактической команды

 mv -WhatIf -Path "$source\*.*" -Destination $pathDestination
0 голосов
/ 06 ноября 2018

Вместо того, чтобы поместить переменную внутри вашей строки, вы можете установить ее вне строки и указать значение для нее и вашей строки:

files = Get-ChildItem C:\Users\edward.muldrew\Documents\35759175  
$pathDestination = "C:\Users\edward.muldrew\Documents\35759175\Test"
for ($i=0; $i -lt $files.Count; $i++) {
     $pathSource = "C:\Users\edward.muldrew\Documents\35759175\" + $files[$i]
     Move-Item $pathSource -Destination $pathDestination

РЕДАКТИРОВАТЬ: я видел, что powershell позволяет вам помещать переменные в строку без конкатенации, окружая их внутри $()

files = Get-ChildItem C:\Users\edward.muldrew\Documents\35759175  
$pathDestination = "C:\Users\edward.muldrew\Documents\35759175\Test"
for ($i=0; $i -lt $files.Count; $i++) {
     $pathSource = "C:\Users\edward.muldrew\Documents\35759175\$($files[$i])"
     Move-Item $pathSource -Destination $pathDestination
...