1

Вот моя структура папок:

destination.lnk
file.1
file.2
file.3
file.4

Как я могу переместить эти файлы из командной строки в "место назначения", не вводя весь путь?

move file.* destination.lnk
Cannot move multiple files to a single file

3 ответа3

2

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

Вместо этого я бы порекомендовал вам сохранить целевой путь к переменной и переместить файлы к ее приведенному значению:

SET location=C:\your_folder
move file.* %location%

Редакция:

Как я понял, вы хотите сохранить расположение целевой папки в отдельном файле. Таким образом, вы можете просто заменить имеющийся ярлык на текстовый файл, содержащий целевой путь:

set /p location=<destination.txt
move file.* %location%
2

Вы можете создать символическую ссылку

mklink Destination "C:\Users\All Users\Dokumente"

а потом

move file.* Destination\

завершающий обратный слеш важен, так как сама символическая ссылка не может быть целью.

Символическая ссылка будет отображаться в каталоге, подобном sys:

> dir des*
 Volume in drive C is System-Xxxxx
 Volume Serial Number is xxxx-xxxx

 Directory of c:\Test

06/26/2017  18:33    <SYMLINK>      Destination [c:\Users\All Users\Dokumente]
               1 File(s)              0 bytes
               0 Dir(s)  89.795.506.176 bytes free
1

Если вы хотите использовать PowerShell, вот скрипт, который будет делать именно то, что вы хотите, сохраняя его в виде переменной:

$Shell = New-Object -ComObject WScript.Shell
$Shortcut = '.\shortcut.lnk'
$TargetPath = $Shell.CreateShortcut($Shortcut).targetpath

Затем используйте эту переменную в PowerShell для достижения желаемого.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .