标签: batch

如何抑制“终止批处理作业(是/否)”确认?

在 cmd 中,当我们按 Ctrl+C 时,我们会终止目标应用程序,但是如果目标应用程序是从批处理文件中调用的,我们会收到“终止批处理作业 (Y/N)”确认。我永远不会记得我选择不终止批处理作业的实例。我们如何跳过此确认?

windows batch command-line

189
推荐指数
9
解决办法
14万
查看次数

您能否仅使用 Windows 的内置压缩文件功能从命令提示符压缩文件?

我有一个输出文本文件的批处理文件。我想如果我也能把它拉上拉链就好了。

这将在不受控制的环境中使用,因此我无法假设是否存在第三方软件产品,例如7-Zip等。这需要使用 Windows 现在内置的功能来压缩文件。

windows zip batch command-line

125
推荐指数
7
解决办法
42万
查看次数

如何从 Startup 文件夹中删除 forkbomb?

我有一台运行 Windows Vista 的较旧的笔记本电脑,大约从 2005 年开始,我在玩弄它。在愚蠢的时刻,我创建了一个批处理文件并将以下代码放入其中:

%0|%0
Run Code Online (Sandbox Code Playgroud)

我运行了这个,我不得不重新启动我的笔记本电脑。但是,我决定继续这个破坏性的路径并将批处理文件放在 Windows 启动文件夹中。现在我无法登录而不破坏我的笔记本电脑。

如何从 Startup 文件夹中删除这个 forkbomb?

windows windows-vista batch batch-file

87
推荐指数
5
解决办法
9608
查看次数

如何自动检测文本文件编码?

有许多纯文本文件以不同的字符集编码。

我想将它们全部转换为 UTF-8,但在运行 iconv 之前,我需要知道其原始编码。大多数浏览器都有Auto Detect编码选项,但是我无法一一检查这些文本文件,因为太多了。

只有知道原始编码,然后我才能将文本转换为iconv -f DETECTED_CHARSET -t utf-8.

是否有任何实用程序可以检测纯文本文件的编码?它不必是 100% 完美的,我不介意在 1,000,000 个文件中是否有 100 个文件被错误转换。

linux encoding batch

86
推荐指数
4
解决办法
16万
查看次数

如何检查批处理文件中最后一个命令的退出代码?

在 Windows 上的批处理文件中,我使用7-zip如下:

...\right_path\7z a output_file_name.zip file_to_be_compressed
Run Code Online (Sandbox Code Playgroud)

我如何检查 的退出代码7z并采取适当的措施?

batch windows-xp

85
推荐指数
2
解决办法
16万
查看次数

如何在 Windows 上递归删除只读属性

我需要使用命令行在 Windows 上递归删除目录下所有文件的只读属性。你能提供一个例子吗?

windows batch file-attributes command-line

84
推荐指数
3
解决办法
19万
查看次数

在 IF 内部时未设置批处理文件中的变量?

我有两个非常简单的批处理文件示例:

给变量赋值:

@echo off
set FOO=1
echo FOO: %FOO%
pause
echo on
Run Code Online (Sandbox Code Playgroud)

正如预期的那样,结果是:

FOO: 1 
Press any key to continue . . .
Run Code Online (Sandbox Code Playgroud)

但是,如果我将相同的两行放在 IF NOT DEFINED 块中:

@echo off
IF NOT DEFINED BAR (
    set FOO=1
    echo FOO: %FOO%
)
pause
echo on
Run Code Online (Sandbox Code Playgroud)

出乎意料地导致:

FOO: 
Press any key to continue . . .
Run Code Online (Sandbox Code Playgroud)

应该与 IF没有任何关系,显然该块正在被执行。如果我在 if 上方定义 BAR,则只显示 PAUSE 命令中的文本,正如预期的那样。

是什么赋予了?


跟进问题:有没有办法在没有 setlocal 的情况下启用延迟扩展?

如果我从另一个内部调用这个简单的示例批处理文件,则该示例设置 FOO,但仅限于 LOCALLY。

例如:

测试调用者.bat

@call test.bat 
@echo FOO: …
Run Code Online (Sandbox Code Playgroud)

windows batch command-line

82
推荐指数
2
解决办法
14万
查看次数

通过 DOS 命令获取当前文件夹名称?

是否可以使用 DOS 命令获取当前文件夹名称(不是当前目录路径)?如果是这样,如何?

我得到的最接近的是这个,但它没有这样做:

for /f "delims=\" %%a in ("%CD%") do set CURR=%%a
echo.DIR: %CURR%
Run Code Online (Sandbox Code Playgroud)

注意:上述尝试是我试图对字符串进行标记并将最后一个标记设置为 CURR 变量。

windows batch command-line

77
推荐指数
6
解决办法
20万
查看次数

如何创建在执行时不显示命令提示符的 Windows 批处理文件?

我安装了一个名为 Redcar 的 ruby​​ gem,它是从命令行启动的。当它运行时,它会窃取 shell 直到它终止,所以我必须创建一个新的 shell 窗口来继续执行命令行工作。我使用的 shell 是来自 MySysGit 的 GITbash shell。

我发现了一个 Redcar.bat 文件,我想它是为了将 Redcar 作为快捷方式启动,但我不希望在启动 BAT 文件时打开额外的命令提示符窗口。

如何在没有看到提示的情况下只运行 BAT?

windows batch command-line

65
推荐指数
6
解决办法
31万
查看次数

确定命令是否在批处理文件中被识别

我正在编写一个 bat 脚本,在其中调用一个程序(例如 javac)。为简单起见,我想在运行之前检查该命令是否存在。即如果命令存在于 PATH 中。

例如,

if (my_command.exe is a recognized command) then (
  my_command.exe my_args
) else (
  REM Output was probably "'my_command.exe' is not recognized as an internal or external command, operable program or batch file."
  REM Do not run my_command.exe
)
Run Code Online (Sandbox Code Playgroud)

在 Windows 中执行此操作的最佳方法是什么?

windows script batch command-line

62
推荐指数
5
解决办法
4万
查看次数