Довольно уверен, что проблема в том, что 0
элемент $args
не расширяется в строке создания недопустимый путь. Оберните переменную в $()
, чтобы она могла расширяться внутри строки с двойными кавычками. В противном случае вы попытаетесь скопировать папку C:\TEST[0]/
, которая, очевидно, неверна.
Copy-Item -Path "$($args[0])/" -Filter *.* -Recurse
Пока не уверен, почему у вас есть косая черта, поскольку Windows-путь использует обратную косую черту.
function Copy-Something(){
test-Path "$($args[0])/"
test-path "$($args[0])"
}
Copy-Something C:\temp
С помощью того, что вы предоставили, результат показывает, что может быть избыточно иметь косую черту. Также порекомендовал бы называть Test-Path
аргументом в любом случае, поскольку он, возможно, поймал это для вас.
True
True
От Вопрос Комментарий
Вы ищете параметра -Recurse
, если вы также хотите содержимое папки.
От ответа Комментарий
Если вы хотите содержимое, а не папку, которую вы должны быть в состоянии сделать что-то вроде этого:
Copy-Item -Path "$($args[0])\*" -Filter *.* -Recurse
пожалуйста, добавьте больше кода, например, функцию это называется в – Paul
Основываясь исключительно на коде, который вы указали, вы не можете копировать вещи, потому что для копирования объекта требуется как путь SOURCE, так и DESTINATION, который будет поставляться в той или иной форме. Вы предоставляете один из двух, и вам нужно предоставить другое. В синтаксисе, который вы используете, путь, который вы поставили, является источником. Вам нужно будет добавить аргумент -destination, чтобы указать, где файлы должны быть скопированы. – TheMadTechnician
Но что, если я хочу скопировать его в местоположение, я сейчас? Я меняю установочное место, и мне все еще нужно добавить путь назначения? – Roberto