windows - 为编辑工具编写批处理脚本程序?
问题描述
我的任务是创建一个编辑工具,在编辑之前保存。我需要做的是让用户输入文件名。如果该文件存在于目录中,则应使用扩展名 .bak 进行备份。在目录中,然后继续编辑它。如果不存在,则不会创建备份
这是我所做的,但我不确定这是否正确:
:: turn the echo off
@echo off
:: ask the user to enter a filename then store it in a variable FILE
set /p FILE= What File Do You Wish to Edit?
:: check if the FILE exists
if EXIST %FILE (
:: back it up
copy %A%A.bak)
:: to open file use notepad
notepad %A
解决方案
您有 2 个选择之一。
@echo off
set /p "FILE=What File Do You Wish to Edit? "
if EXIST %FILE% (
copy "%FILE%" "%FILE%.bak"
notepad "%FILE%"
) else (
echo Sorry, "%FILE%" does not exist.
)
上面将检查文件是否存在,然后创建一个副本bak
,在当前扩展名之后添加扩展名,即file.txt.bak
此示例使用for
循环创建具有新扩展名的文件名。
@echo off
set /p "FILE=What File Do You Wish to Edit? "
for %%i in (%FILE%) do if exist %FILE% (
copy "%%~ni" "%%~ni.bak"
notepad "%FILE%"
) else (
echo Sorry, "%FILE%" does not exist.
)
要了解有关此处所做操作的更多信息,请打开cmd
并获取以下命令的帮助文件:
set /?
for /?
if /?
推荐阅读
- algorithm - 二进制迷宫生成器
- sql - Sql按日期获取表中的最新行-双选vs order by
- r - 你如何呈现一个表格(和图表)来说明 R 中排列组大小的频率?
- sql - 如何通过多项选择在键表中选择值
- excel - 如何在保存的文件名中添加时间?
- node.js - 来自 Firebase 的 Node.js 值未及时更新数组以进行函数调用(即使使用 Async Await)
- gradle - 没有为代码覆盖率生成 JaCoCo XML 报告
- quarkus - quarkus mongodb panache 中的字段级加密
- r - 如何在不使用 AIC 的情况下比较 2 个 lme4 混合模型?
- python - 如何修复 Tkinter 中的颜色滑块?