Tag: batch file

通过C#代码以静默方式的不同用户运行.bat文件

我每隔几秒运行一个批处理文件,使用以下代码与服务器进行时间同步: Process process = new Process(); process.StartInfo.WorkingDirectory = Environment.GetFolderPath(Environment.SpecialFolder.System); process.StartInfo.FileName = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), “cmd.exe”); process.StartInfo.Arguments = @”/CC:\TimeSync.bat”; process.StartInfo.CreateNoWindow = true; process.StartInfo.UseShellExecute = false; process.StartInfo.WindowStyle = ProcessWindowStyle.Minimized; process.StartInfo.RedirectStandardOutput = true; process.StartInfo.UserName = “username”; SecureString pwd = new SecureString(); Char[] pwdCharacters = “password”.ToCharArray(); foreach (char t in pwdCharacters) { pwd.AppendChar(t); } process.StartInfo.Password = pwd; process.Start(); string output = […]

包含UTF-8字符的批处理文件中的命令行参数会导致问题

我写了一个小实用程序,它将路径作为命令行参数,但是如果(并且仅当)该参数从批处理文件传递并且包含像Umlauts这样的UTF-8字符时我遇到了麻烦(不幸的是,这种情况很常见)系统语言是德语)。 我可以从项目调试属性传递文件名和Umlaut,没问题。 我可以从命令行传递文件名和Umlaut,没问题。 我从批处理文件传递文件名与Umlaut,混乱。 显然,我已经尝试将批处理文件保存为UTF-8编码…但是这样的事情就不会执行任何命令。 实际的程序是用C#编写的。 在批处理文件或代码端,我有哪些选项可以正确处理这些参数?

确定已安装的TrueCrypt卷的驱动器号

将TrueCrypt容器安装到驱动器盘符后,是否可以在批处理文件中确定从哪个容器安装驱动器号,或者将容器安装到哪个驱动器盘符? 在批处理文件中,我想将指定的TrueCrypt容器挂载到指定的驱动器号。 如果容器已经安装或者驱动器号不可用,则TrueCrypt错误,所以我只想在指定的容器尚未安装到指定的驱动器号时才运行TrueCrypt,也就是说,仅当操作没有时才运行TrueCrypt已经完成了。 任何建议,将不胜感激。 编辑 赏金总结简而言之,您可以将卷C:\Vol1.tc和C:\Vol2.tc安装到驱动器X和Y 你怎么能把C:\Vol1.tc安装到驱动器X和C:\Vol2.tc以使用批处理文件或C#代码来驱动Y programaticaly?