我想完全按照unix“cat”做的事情,但是在我的电脑上。Windows 命令行是否有简单的等效命令?
具体来说,我想从文件夹中给定类型的所有文件创建一个文件
在 Unix 中:
cat *fna >all_fna_files.fna
Run Code Online (Sandbox Code Playgroud)
(将所有“.fna”文本文件合并为一个大文本文件)
是否可以使用 DOS 命令获取当前文件夹名称(不是当前目录路径)?如果是这样,如何?
我得到的最接近的是这个,但它没有这样做:
for /f "delims=\" %%a in ("%CD%") do set CURR=%%a
echo.DIR: %CURR%
Run Code Online (Sandbox Code Playgroud)
注意:上述尝试是我试图对字符串进行标记并将最后一个标记设置为 CURR 变量。
如何使用 DOS 命令将文件复制到可能尚不存在的目录结构中?如果该位置尚不存在,我需要能够强制创建指向目标文件位置的目录路径。
比如这个位置已经有一个file.txt:
C:\file.txt
Run Code Online (Sandbox Code Playgroud)
我想把它复制到
C:\example\new\path\to\copy\of\file\file.txt
Run Code Online (Sandbox Code Playgroud)
但此时
C:\example\
Run Code Online (Sandbox Code Playgroud)
并且所有子目录可能存在也可能不存在。
基本上,我正在寻找“必要时复制并创建目标路径”命令。你会推荐什么是实现这一目标的最佳方法?
到现在为止,我从来没有想过(和从未观察到),这cmd和command是两个不同的东西。嗯,是吗?
看看这张照片:
实际上,cmd每当我想使用命令行(对于 Git/VIM)时,我通常都从“运行”对话框打开。所以,我自定义了显示位置,字体,颜色等。今天,我为了改变,输入command了运行而不是,cmd发现我的窗口上有新的东西。它的窗口中有“DOS”。
所以,显然cmd和之间应该有区别command。我想知道
我有一台运行 MS-DOS 的 PC(即没有 Windows)。如何检索 PC 上所有硬件的列表?像 Windows 版的 Everest,或者更简单的东西,比如lspciLinux。
在 Windows NTFS 文件系统上,我有一个文件(比如orig.mp3)。我通过此路径orig.mp3以正在使用的方式打开此文件(例如,通过在 VLC 中播放它)。
然后我创建一个硬链接 ( cmd /c mklink /h link.mp3 orig.mp3)。这导致两个 NTFS 路径指向完全相同的文件。
最后,我再次尝试删除链接文件(del link.mp3,或在 Windows 资源管理器中删除)。
失败并显示错误:“该进程无法访问该文件,因为它正被另一个进程使用。”
为什么?更重要的是:我怎样才能避免这种情况(除了确保没有进程使用原始文件)?我是否可以告诉 Windows 进行“延迟删除”,以便在不再使用原始文件时自动删除链接文件?
我见过很多日文和中文的文本模式 BIOS 设置屏幕。最近我什至看到了日语版的 Windows XP 设置。MS-DOS 也有日文版本。真正的 DOS 模式,而不是 Windows 命令提示符!
通常,文本模式屏幕的大小为80x25。由于日文字符是正常拉丁字符宽度的两倍,因此屏幕上最多可以同时显示的日文字符数约为 1000 个,因此我们需要2000 个码点来显示字符的左右部分.
由于默认文本模式只能显示 256 个字符,但前 128 个用于 ASCII,因此可用的仅限于高 128 个码位。如果需要,我们可以通过减少颜色数量将其扩展到 512,但这仍然无法支持足够的代码点用于显示。我一直想知道他们是如何设法用如此有限的字符数来显示大字符集的。
Linux 中的文本模式似乎使用图形模式驱动程序,因为它可以显示 Unicode 并且有更多的颜色。但我无法解释它们在 MS-DOS 和 BIOS 设置屏幕中是如何做到的。
文字模式也有韩文!
因此,我长期以来一直不敢提及“您在批处理文件和 cmd shell 中使用的语言”的名称。承认我不知道它叫什么是很尴尬的。
我听过的唯一术语是“DOS”,但我不想让自己接受诸如“DOS 是一个操作系统”或“DOS 是 16 位,自 06 年以来就不再在 Windows 上运行”之类的回答。 ,或“DOS 使用 command.com,但 CMD 是 VDM”或类似的内容(并不是说这实际上发生了,只是社交焦虑......)。
那么有人可以告诉我您在 MS .bat 文件中放入的语言的现代术语是什么吗?
我正在尝试从标准的 Windows XP DOS 提示符运行几个 16 位旧版 DOS 程序。问题是文件扩展名已从 .COM 重命名为 .COS 并且它们存储在只读媒体上,我无法复制它们(特殊环境)。
尽管有奇怪的扩展名,但有关如何调用此类文件的任何提示?如果它们是 32 位 EXE,即使没有适当的扩展名,运行它们也不会成为问题,但是对于这些 COM 文件,我无法找到运行它们的方法。
类似于如何递归复制文件而忽略目标目录结构?但在cmd.
我想递归复制所有文件,但在目标文件夹中我想压缩目录结构。我首先查看了xcopy,但它不允许选择压缩结构(我可以看到)。
然后我查看了for,但是当目录结构中有空格时我无法让它工作。例如:
for /F %f in ('dir /b/s/A-D D:\Libs') do @copy "%f" D:\Bin /Y >NUL
Run Code Online (Sandbox Code Playgroud)
这不会复制驻留在带有空格的路径中的任何文件。这似乎是由于for在空格和回车字符上拆分的事实。
如果有一个适用于 MSBuild 的解决方案,我也会接受。
我有一个名为con.php. 我试图通过 Windows 命令行删除它,但它返回一个错误:
Syntax for filename, directory name, or volume label is incorrect.
Run Code Online (Sandbox Code Playgroud)