Я пытаюсь выполнить следующие основные задачи на компьютере с Windows 7. Задачи, которые я пытаюсь выполнить, перечислены в следующем порядке.
- Запросить ввод данных для 2 чисел.
- Поиск и поиск, если папка существует.
- Если папка не существует, создайте ее.
- Поиск сетевого диска для файла Excel.
- Скопируйте этот файл Excel во вновь созданную папку.
- Открыть этот файл 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
Я хочу показать список файлов:
- filename1.xlsx
- filename2.xlsx
Вместо списка ниже.
- J: ...... \ 56480 \
- J: ...... \ 56480 \ 09763 \
- J: ...... \ 56480 \ Files \
- J: ...... \ 56480 \ Files \
- J: ...... \ 56480 \ Sales \ filename.xlsx
Все эти параметры являются только каталогами, а не файлами, которые я ищу. Только последний файл является файлом, но не тот, который я ищу, поскольку в каталогах находится больше файлов Excel, но их нет в списке.
UPDATE:
Теперь я обнаружил, что при распечатке списка файлов весь каталог с именем файла не сохраняется. Когда выполняется секция кода списка печати, он сокращает путь и обрезает имя файла. Итак, когда я выбираю файл для копирования, он выдает ошибки и говорит: «Файл не найден»
Что приводит к сокращению списка местоположений файлов? Это врожденное ограничение консоли? Я знаю, что могу получить полный путь и имена файлов для отображения с помощью текстового файла, но не уверен, как это реализовать здесь.