使用CD命令转到文件夹后自动执行命令


0

如果通过cd命令移动到命令,是否可以在文件夹中自动执行命令?

当然我可以定义自己的命令(例如CHD.BAT)做这样的事情:

@echo off
cd %1
if exist init.bat (
    init.bat
) else (
    color 0F
    title Command Prompt
)

但我想知道使用标准CD命令是否可以这样。


你为什么还需要呢?听起来很腥。
— Camilo Martin

这只是一个想法,我必须根据当前文件夹自动设置我的命令提示符的窗口标题。例如。当我的应用程序X的1.0版的开发文件夹中,我想将命令提示符标题设置为“X 1.0”。如果您在该命令提示符窗口中执行大脚本并且无法回滚到提示符(确实设置为$ p $ g),这将非常有用。
— Patrick

你是什​​么意思“无法滚动回提示”?您可以配置CMD.EXE的缓冲区(右键单击窗口左上角的图标,属性。或类似的东西),以便能够向后滚动很多。如果这就是你的意思。此外,您可以创建一个批处理文件来代替CD使用 - 类似于 mycd.bat。
— Camilo Martin

当脚本输出许多行时(例如,在完整编译中编译的每个文件都有一行),9999行是不够的。但确实像mycd.bat这样的东西可以解决这个问题。
— Patrick

我只是想知道从IDE编译是不是更容易,或者如果你有一台机器只是为了编译而自动化它。另外,为什么不编辑构建脚本本身来更改标题?
— Camilo Martin

Answers:


2

不,因为这会非常危险。如果是,您可以通过访问其中一个文件夹欺骗管理员执行随机恶意代码。


好点子。这确实非常危险。
— Patrick

0

你可以通过创建一个doskey宏来做到这一点:

doskey cd=cd $*$Tif exist init.bat (init.bat) else (color 0f^&title Command Prompt)

但是,似乎输出完成了 init.bat 文件似乎是在通常的提示后写的:

C:\Users\Me>doskey cd=cd $*$Tif exist init.bat (init.bat) else (color 0f^&title Command Prompt)

C:\Users\Me>cd stuff

C:\Users\Me\Stuff>Foo

(我 init.bat 在 Stuff 只包含 @echo Foo。)


即便 @ECHO OFF 存在?
— Phoshi

它没有输出 命令 ,它输出 提示 在打印bat文件的输出之前。
— Joey
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.