Я пытаюсь взять файл .txt и переместить его по сети с помощью xcopy .

Вот мой код до сих пор:

@ECHO off
XCOPY /y pushd \\Oafrpnbtcsi01\Test_Systemplatz\Systemplatz_SLOT_1_Fail.txt

rem get date, make if file name friendly
FOR /F "tokens=1-4 delims=/ " %%i in ('date/t') do set d=%%i-%%j-%%k-%%l

set MBD=Systemplatz_SLOT_1_FailB%d%DN.txt
ren Systemplatz_SLOT_1_Fail.txt %MBD%
move *.txt F:\Public\Logfiles\Systemplatz\Test\02\Systemplatz Slot 1
@ECHO on

Я также хочу, чтобы дата была добавлена в имя текстового файла.

Пока что это не работает, так что я уверен, что сделал что-то не так. Если есть лучший способ сделать это, пожалуйста, объясните.

1 ответ1

1

Я вижу две проблемы. Во-первых, есть эта строка:

XCOPY /y pushd \\Oafrpnbtcsi01\Test_Systemplatz\Systemplatz_SLOT_1_Fail.txt

pushd - это команда сама по себе; это не может быть передано в качестве аргумента xcopy . xcopy нужны два аргумента, источник и место назначения; Похоже, у вас есть только один. Я предполагаю - но я не уверен - что вы хотели переместить текущий каталог в \\Oafrpnbtcsi01\Test_Systemplatz\ , который содержит файл, с которым вы собираетесь работать. Чтобы сделать это, замените вышеприведенную строку только этим:

pushd \\Oafrpnbtcsi01\Test_Systemplatz\

Вторая проблема на этой линии:

move *.txt F:\Public\Logfiles\Systemplatz\Test\02\Systemplatz Slot 1

Похоже, одна из папок в пути называется Systemplatz Slot 1 , но для move Slot и 1 выглядят как разные аргументы, потому что есть пробелы. Вы должны заключить весь путь назначения в кавычки, например так:

move *.txt "F:\Public\Logfiles\Systemplatz\Test\02\Systemplatz Slot 1"

Наконец, вы, вероятно, захотите, чтобы popd в конце скрипта полностью изменил pushd , вернув текущий каталог на прежнее место.

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