在 cmd 中,当我们按 Ctrl+C 时,我们会终止目标应用程序,但是如果目标应用程序是从批处理文件中调用的,我们会收到“终止批处理作业 (Y/N)”确认。我永远不会记得我选择不终止批处理作业的实例。我们如何跳过此确认?
我有一个输出文本文件的批处理文件。我想如果我也能把它拉上拉链就好了。
这将在不受控制的环境中使用,因此我无法假设是否存在第三方软件产品,例如7-Zip等。这需要使用 Windows 现在内置的功能来压缩文件。
我有一台运行 Windows Vista 的较旧的笔记本电脑,大约从 2005 年开始,我在玩弄它。在愚蠢的时刻,我创建了一个批处理文件并将以下代码放入其中:
%0|%0
Run Code Online (Sandbox Code Playgroud)
我运行了这个,我不得不重新启动我的笔记本电脑。但是,我决定继续这个破坏性的路径并将批处理文件放在 Windows 启动文件夹中。现在我无法登录而不破坏我的笔记本电脑。
如何从 Startup 文件夹中删除这个 forkbomb?
有许多纯文本文件以不同的字符集编码。
我想将它们全部转换为 UTF-8,但在运行 iconv 之前,我需要知道其原始编码。大多数浏览器都有Auto Detect编码选项,但是我无法一一检查这些文本文件,因为太多了。
只有知道原始编码,然后我才能将文本转换为iconv -f DETECTED_CHARSET -t utf-8.
是否有任何实用程序可以检测纯文本文件的编码?它不必是 100% 完美的,我不介意在 1,000,000 个文件中是否有 100 个文件被错误转换。
在 Windows 上的批处理文件中,我使用7-zip如下:
...\right_path\7z a output_file_name.zip file_to_be_compressed
Run Code Online (Sandbox Code Playgroud)
我如何检查 的退出代码7z并采取适当的措施?
我需要使用命令行在 Windows 上递归删除目录下所有文件的只读属性。你能提供一个例子吗?
我有两个非常简单的批处理文件示例:
给变量赋值:
@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) 是否可以使用 DOS 命令获取当前文件夹名称(不是当前目录路径)?如果是这样,如何?
我得到的最接近的是这个,但它没有这样做:
for /f "delims=\" %%a in ("%CD%") do set CURR=%%a
echo.DIR: %CURR%
Run Code Online (Sandbox Code Playgroud)
注意:上述尝试是我试图对字符串进行标记并将最后一个标记设置为 CURR 变量。
我安装了一个名为 Redcar 的 ruby gem,它是从命令行启动的。当它运行时,它会窃取 shell 直到它终止,所以我必须创建一个新的 shell 窗口来继续执行命令行工作。我使用的 shell 是来自 MySysGit 的 GITbash shell。
我发现了一个 Redcar.bat 文件,我想它是为了将 Redcar 作为快捷方式启动,但我不希望在启动 BAT 文件时打开额外的命令提示符窗口。
如何在没有看到提示的情况下只运行 BAT?
我正在编写一个 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 中执行此操作的最佳方法是什么?
batch ×10
windows ×8
command-line ×7
batch-file ×1
encoding ×1
linux ×1
script ×1
windows-xp ×1
zip ×1