2016-03-31 3 views
3

Я написал командный файл, который должен перебирать все .csv-файлы в папке и делать следующее с каждым: MOVE/Переименуйте его в solar.csv в другой папке, перезаписывая любой файл с помощью одно и то же имя, запустите некоторую службу, которая использует solar.csv, подождите 7,5 минут, остановите службу. Это должно быть сделано для каждого CSV-файла в папке. Я бы хотел, чтобы он сообщал каждый шаг, как он это делает. Вот мой код:Отладка командного файла

@ECHO OFF 
CD "D:\PI Data Import\Data" 

For /R %%G IN (*.csv) DO (

MOVE /Y %%G.csv "D:\PI Data Import\solar.csv" 
ECHO "%%G.csv Moved" 
NET START RDBMSPI4 
ECHO "Service Started" 
ECHO "Waiting" 
TIMEOUT /T 450 /NOBREAK 
NET STOP RDBMSPI4 
Echo "%%G.csv Complete" 

) 

Сообщается, что мой синтаксис команды неверен, но не говорит, какая именно деталь. Я предполагаю, что строка FOR/R немного неверна, возможно, команда MOVE и, возможно, как я обрабатываю %% G в разделе команд.

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

+2

Для общей отладки я бы рекомендовал удалить/комментировать команду '@ECHO OFF', чтобы вы могли видеть последнюю команду, обрабатываемую при возникновении ошибки. –

+1

Если у вашего CSV-файла есть пробелы, вы получите сообщение об ошибке в вашей команде 'MOVE'. Убедитесь, что вы указываете имена файлов, чтобы убедиться: '" %% G "' –

ответ

2

Я удаляю/R из команды for. Кроме того, не помещайте .csv после %% g в любом месте. Они уже будут иметь .csv, добавленные как файлы .csv.

Вы собираетесь перезаписать файл solar.csv, каждый раз, когда вы перемещаете CSV-файл BTW. Если вы хотите, чтобы файлы CSV были добавлены к solar.csv, вам может потребоваться ввести их в этот файл. Например.

Перед вами петли ...

if exist solar.csv del solar.csv 

И в цикле ...

type %%g >> solar.csv 

Если ваша служба не будет обрабатывать каждый solar.csv файл, а затем вы просто перезаписать файл с последующим, в этом случае вы золотым :)

+0

Спасибо за ввод! Я внес изменения, но я действительно хочу, чтобы он переписывался каждый раз, когда я двигался. Если я удалю/R, будет ли он рекурсивно проходить этот родительский каталог? Я хочу, чтобы возможность удалять данные в папках в папке «Данные» и запускать их во всех папках. – shilohln

+0

Я изначально не мог заставить его работать с/R, но если вам нужно это сделать, и он отлично работает для вас, тогда сохраните его, да :) – ManoDestra

Смежные вопросы