我正在尝试在Windows 7计算机上执行以下基本任务。我尝试执行的任务按以下顺序列出。
我的批处理文件代码包含在这里。可以,但是用户会在目录中获取文件列表,然后选择要复制的文件。我现在遇到的问题是所列文件不正确也不完整,仅显示部分目录位置,而不显示带有文件名的整个位置。我想在目录中找到所有的.xls和.xlsx文件。 目录和文件名的更改不遵循命名约定的标准,这使搜索正确的文件变得困难。
这是我整理的hack作业,也是我第一次尝试编写批处理文件,因此人们的任何帮助,技巧或更改都将极大地帮助我。我已经知道这不是好的代码或过程,因此无需花时间告诉我。如果我知道自己在做什么,我就不会在这里寻求这样的基本帮助。
最终,我希望有一个独立的程序来使用基本的GUI来执行此操作,但是对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
我希望文件列表显示:
代替下面的列表。
所有这些选项仅是目录,而不是我要查找的文件。只有最后一个是文件,但不是我要查找的文件,因为这里的目录中有更多Excel文件,但未列出。
更新:
我现在发现,当打印出文件列表时,不会存储带有文件名的整个目录。运行代码的打印列表部分时,它会缩短路径并切断文件名。因此,当我选择要复制的文件时出现错误并说“找不到文件”
是什么导致文件位置列表被缩短?这是固有的控制台限制吗?我知道我可以获得使用文本文件显示的完整路径和文件名,但不确定如何在此处实现。
答案 0 :(得分:0)
对于/ f“ delims =” %% x in('dir / s / b%filePath%*。xls'))--JosefZ
此答案和解决方案发布在评论中,而不是答案中,因此我无法将其设置为“已回答”。 我的问题已修复,我的批处理文件正在按我需要的方式工作。
感谢您的帮助。