Проблемы с перемещением файлов в PowerShell с использованием forfiles в папку, имя которой содержит более одного слова - PullRequest
0 голосов
/ 27 мая 2019

Я новичок в PowerShell и пытаюсь переместить несколько таблиц Excel в папку с именем «старая папка» с помощью команды forfiles.PowerShell говорит, что файлы были перемещены, но когда я проверяю папку, их там нет.Они также не находятся в своем первоначальном расположении.

forfiles /P C:\Users\NewUser\Desktop /M *.xlsx /D +27/05/2019 /C 'cmd /c move @file C:\Users\NewUser\Desktop\"old folder"\'

Я попытался изменить имя папки на одно слово "oldfolder", и оно работало просто отлично.Что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 27 мая 2019

Поскольку forfiles имеет свои особенности даже в cmd, я бы не стал перетаскивать это в PowerShell.
IIUR, что означает:

Get-ChildItem 'C:\Users\NewUser\Desktop\*.xlsx' -File |
    Where-Object LastWriteTime -ge [DateTime]::Today |
        Move-Item -Destination 'C:\Users\NewUser\Desktop\old folder\'

Не уверен, что вы имели в виду /D -27/05/2019 => -lt или -le вместо -ge

0 голосов
/ 27 мая 2019

Кажется, есть проблема с синтаксисом вашего параметра / C. Насколько я могу сказать, аргумент должен быть заключен в двойные кавычки. И из-за пробела в имени файла, который также должен быть заключен в двойные кавычки. Кавычки в кавычках следует экранировать с помощью обратной косой черты. Я бы предложил это:

forfiles /P C:\Users\NewUser\Desktop /M *.xlsx /D +27/05/2019 /C "cmd /c move @file \"C:\Users\NewUser\Desktop\old folder\""
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...