Попытка автоматизировать простое управление задачами и процессами с помощью пакетного файла на компьютере с Windows 7 - PullRequest
0 голосов
/ 02 апреля 2019

Я пытаюсь выполнить следующие основные задачи на компьютере с Windows 7. Задачи, которые я пытаюсь выполнить, перечислены в следующем порядке.

  1. Запросить ввод данных для 2 чисел.
  2. Поиск и поиск, если папка существует.
  3. Если папка не существует, создайте ее.
  4. Поиск сетевого диска для файла Excel.
  5. Скопируйте этот файл Excel во вновь созданную папку.
  6. Открыть этот файл Excel локально для редактирования.

Код моего командного файла включен сюда. Это работает нормально, но пользователь получает список файлов в каталоге, а затем выбирает один для копирования. Проблема, с которой я столкнулся, заключается в том, что перечисленные файлы не являются правильными и полными, и показывает только частичное местоположение каталога, а не полное местоположение с именем файла. Я хочу найти все файлы .xls и .xlsx в каталоге. Каталог и имя файла изменяются без каких-либо стандартов для соглашения об именах, что затрудняет поиск правильного файла.

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

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

Удалены предыдущие строки ...

:FILE_COPY
setlocal enabledelayedexpansion
set count=0

:
:: Read in files
echo Please wait. Searching for BOM files.
for /f %%x in ('dir /s /b %filePath%\*.xls') do (
    set /a count=count+1
    set choice[!count!]=%%x
    for %%y in (!count!) do set "choice[%%y]=!choice[%%y]:%cd%\=!"
        )

echo The following files were found for PCA-%pcaNum%. 
echo Enter number of file to copy.
echo.

:
:: Print list of files
for /l %%x in (1,1,!count!) do (
     echo  %%x] !choice[%%x]!
)
echo.

:
:: Retrieve User input
set /p select=File Number: 
echo.

:
:: Print out selected filename
xcopy /v !choice[%select%]! C:\Users\dvanmeter\Desktop\CXF\%jobNum%
start !choice[%select%]!
pause
GOTO:END

:END
exit

Я хочу показать список файлов:

  1. filename1.xlsx
  2. filename2.xlsx

Вместо списка ниже.

  1. J: ...... \ 56480 \
  2. J: ...... \ 56480 \ 09763 \
  3. J: ...... \ 56480 \ Files \
  4. J: ...... \ 56480 \ Files \
  5. J: ...... \ 56480 \ Sales \ filename.xlsx

Все эти параметры являются только каталогами, а не файлами, которые я ищу. Только последний файл является файлом, но не тот, который я ищу, поскольку в каталогах находится больше файлов Excel, но их нет в списке.


UPDATE:

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

Что приводит к сокращению списка местоположений файлов? Это врожденное ограничение консоли? Я знаю, что могу получить полный путь и имена файлов для отображения с помощью текстового файла, но не уверен, как это реализовать здесь.

1 Ответ

0 голосов
/ 03 апреля 2019

for / f "delims =" %% x in ('dir / s / b% filePath% *. Xls') do - JosefZ

Этот ответ и решение было опубликовано в комментарии, а не в ответе, поэтому я не смог установить его как «Отвечено». Моя проблема была исправлена, и мой командный файл работает именно так, как мне нужно.

Спасибо за помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...