Batch file 命令";目录%1“;不工作..(批处理文件编程)

Batch file 命令";目录%1“;不工作..(批处理文件编程),batch-file,Batch File,我在学习批处理文件编程。命令DIR%1不起作用。为什么呢?请帮帮我 REM this batch file will make REM the data in a file difficult to recover. DIR %1 PAUSE You are going to kill the file %1 Are you sure? ECHO > %1 DEL %1 我通过将其保存为.bat文件来执行此代码 DIR %1 PAUSE You are going to kill

我在学习批处理文件编程。命令
DIR%1
不起作用。为什么呢?请帮帮我

REM this batch file will make 
REM the data in a file difficult to recover.
DIR %1 PAUSE You are going to kill the file %1 Are you sure? 
ECHO > %1 
DEL %1
我通过将其保存为.bat文件来执行此代码

DIR %1 PAUSE You are going to kill the file %1 Are you sure? 
等等什么?线路本身有一些错误


1:使用
&
&
dir
命令和pause命令分开,
&
毫不在意地运行下一个命令,
&
在命令成功后运行它,或者将
pause
移动到新行

2:在
%1
周围添加引号,如
%1”
,然后用
%1
转义它周围的任何引号(因此不能重复引用),用作
“%1”
。这可以应用于delete命令,也可能应用于重定向

3:pause命令不支持这样的自定义文本,您必须在pause命令之前的一行上回显提示,或者如果需要,可以使用
choice
命令。(
选择/?
设置/?
中的
/p
选项)

4:虽然不是错误,为什么要在删除之前覆盖它? 如果您如此热衷于擦除它,我建议通过以下方式将其设置为零字节文件:

type nul >"%~1"
:: Then deleting normally;
del "%~1"
或者至少使用`echo:>“%~1”


最后,假设在调用文件时您通过引用提供的路径,这应该工作得更好

dir "%~1"
pause Are you sure you want to delete [%~1]?
pause
echo:>"%~1"
del "%~1"
或者用一个简单的提示

dir "%~1"
echo Are you sure you want to clear [%~1]'s content?
set /p "confClear=y/n, default y:" 
if /i "%confClear%" equ "n" (exit)
echo:>"%~1"
del "%~1" 
编辑 启动文件时是否传递引用的参数?从另一个批处理文件中,可以使用:

:: Using 'call'
call "delConfirm.bat" "C:\Users\Arescet\Project\uselessFile.txt"

这将启动
delConfirm.bat
,并使
%1“
等同于
“C:\Users\areset\Project\uselessFile.txt”
,很可能是您想要的。

您遇到了什么错误,可以显示您的代码吗?如果没有这些,我们真的帮不了你。你试过
dir“%~1”
?请阅读以了解你为什么被否决。。。。并告诉我们如何执行代码。(我有某种怀疑…@某种黑暗的同样的怀疑?:数据上述代码正常工作,但它不显示文件名,而是显示一个空格或“”或[],代码将删除该目录中的所有文件。'You。。。调用脚本时正在将参数传递给脚本,对吗?-12小时前的一些黑暗的事情,对吗?@Stephan我会加上一条关于如何做的注释,以防万一。。。