搜索文件并更改为另一个文件

问题描述 投票:0回答:1

我需要帮助,我制作了这个代码,它查找文件“filename.txt,如果它找到另一个文件”filemame2.txt,但我想让它问我在哪个驱动器c:\或d:\我想要搜索并更改找到的文件。你能帮助我吗?

@echo off
echo search...
if exist "filename.txt" (
echo file filename.txt found.
xcopy c:\filename.txt /y filename2.txt
) else (
echo file filemame.txt does not found.
)
echo finished.
echo press any key to exit...
pause >nul
windows batch-file cmd
1个回答
1
投票

使用choiceset /p有很多不同的方法可以做到这一点

一种方法是简单地使用goto,基于choice在选择的实例中设置的errorlevel,我们只需使用字母CD并且不需要输入,只需按键盘上的CD,就可以选择命令。

@echo off
echo select the drive where the file should exist..
choice /C CD
if %errorlevel%==2 call goto :ddrive
if %errorlevel%==1 call goto :cdrive
:cdrive
if exist "c:\filename.txt" (xcopy /y "c:\filename.txt" /y "c:\filename2.txt") else (echo C:\filename.txt does not exist)
goto :EOF
:ddrive
if exist "d:\filename.txt" (xcopy /y "d:\filename.txt" "d:\filename2.txt") else (echo D:\filename.txt does not exist)
echo finished.
pause

看到你只有2个选项,第二个if可以被淘汰,但是我把它留了下来,因为你可能想要添加更多的驱动器。

有关这些的帮助,打开cmd.exe和ru choice /?set /?和好的措施,if /?

根据您的注释,如果要在提示中包含完整路径,意味着在提示符处,您必须键入驱动器号和您认为文件所在位置的路径。即c:\some dir

@echo off
set /p "source=Please enter path to search file :"
set /p "dest=Please enter path to copy file to :" 
if exist "%source%\filename.txt" (xcopy /y "%source%\filename.txt" /y "%dest%\filename2.txt") else (echo C:\filename.txt does not exist)
echo finished.
pause

如果要搜索文件,则需要使用dir /a-d /b /s filename.txt并将其设置为变量。

© www.soinside.com 2019 - 2024. All rights reserved.