2017-08-01 110 views
0

想象一下Windows中只有一个.html文件(或任何其他扩展名)的目录。即,当我做dir *.html时,只列出一个文件。获取目录中单个HTML文件的文件名

是否有任何简单的命令来获取该文件名而不进入for循环,该循环使用set?我正在从另一个软件运行命令行,它无权创建文件(使用>),也无法访问环境变量(使用set)。

在这种特殊情况下,我想开这样的文件,Firefox的命令行

C:\mydir>"C:\Program Files (x86)\Mozilla Firefox\firefox.exe" [single_file].html 

回答

0

DOS是可怕的

如果你真的想要一个衬垫...

dir /b *.html > tmp & set /p var=<tmp & del tmp & "C:\\Program Files (x86)\\Google\Chrome\\Application\\chrome.exe" %var%

我有Chrome,所以只需将您的路径替换为Firefox的路径即可。 dir /b *.html是这里的关键。它只列出文件,没有任何dir通常放置的其他标头。 /b是用于BARE。

编辑:由于您无权写入文件和设置变量,因此除了使用for循环外,我认为您没有其他选项。这一个这里是很短的

for %h in (*.html) do start Chrome %h 

你应该检查您可以运行start Firefox启动Firefox。否则,你就必须替代路径,像这样:

for %h in (*.html) do "C:\\Program Files (x86)\\Google\Chrome\\Application\\chrome.exe" %h 

如果Firefox是默认浏览器,你可以运行:

for %h in (*.html) do %h 
+0

有趣!有没有'set',使用环境变量的解决方案? –

+0

有什么更简单的,没有'set'?是的,我同意,dos是可怕的。 –

+0

这涉及到创建文件('>')和处理环境变量('set')并且我都不能访问。 –