windows - 搜索文件并更改为另一个
问题描述
我需要帮助,我编写了这段代码,它查找文件“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
解决方案
有许多不同的方法可以同时使用choice
或set /p
一种方法是简单地使用 goto,根据在choice
选择实例中设置的错误级别,我们只需使用字母C
并且D
不需要输入,您按键盘上的C
或D
,它将执行选择命令。
@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 可以消除,但我把它留在了,因为你可能想添加更多驱动器。
对于这些方面的帮助, opencmd.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
并将其设置为变量。
推荐阅读
- neo4j - Neo4j java.rmi.UnmarshalException:解组返回标头时出错;嵌套异常是:
- r - 裁剪多个栅格 (ASCII)
- arrays - 给定一个包含“前 n”个自然数的数组,其中一个元素缺失和一个重复元素。找出两个数字
- opengl - 设置较小的opengl窗口宽度,如64
- javascript - 上下文菜单事件
- java - JavaFX GrowableDataBuffer,画布性能打嗝
- c# - 使用 C# 从 SQLite 中读取日期时间
- c# - 如何通过vb中的c#编码将数据添加到sql server中的时间戳列
- javascript - Javascript,在离开页面之前做一些事情
- python - 正则表达式 html 动态表