就在我以为我已经看到了Windows路径问题时,我现在遇到的情况只有在使用'/'(正斜杠)作为路径分隔符时才会失败:
C:\temp\tcbugs>mkdir "dir1 with spaces"
C:\temp\tcbugs>echo hi > "dir1 with spaces"\foo.txt
C:\temp\tcbugs>type "dir1 with spaces\foo.txt"
hi
C:\temp\tcbugs>type "dir1 with spaces/foo.txt"
The system cannot find the file specified.
Run Code Online (Sandbox Code Playgroud)
特别有趣的是它似乎是特定于cmd.exe shell而不是在PowerShell中出现(也不是在win32 API中):
PS C:\temp\tcbugs> type 'dir1 with spaces/foo.txt'
hi
Run Code Online (Sandbox Code Playgroud)
另一个兴趣点是使用'cd'更改目录并使用'/'作为cmd.exe的路径分隔符确实有效:
C:\temp\tcbugs>mkdir dir2_no_spaces
C:\temp\tcbugs>cd ./dir2_no_spaces
C:\temp\tcbugs\dir2_no_spaces>cd ..
Run Code Online (Sandbox Code Playgroud)
然而,我无法在网上或MSDN的常用文档中找到任何对此特定问题的引用:
这引出了我的问题:为什么会发生这种情况,是否有一个明确的来源记录了这个怪癖?
更新:
dbenham指出,无论空格是否在目录名称中,问题都存在,因此在标题和问题正文中删除了对它的引用.还添加了一个有效的"cd ./"示例,而其他命令则没有.
我有一个Windows Server 2008 32位,当我输入%temp%时,我需要..AppData\Local\Temp\1 \或..AppData\Local\Temp\2而不是..AppData\Local\Temp
我已经检查了环境变量,它们没问题.
我问这是因为我有一个应用程序应该将文件复制到%temp%\我的应用程序,而是将文件复制到%temp%\ 1 \我的应用程序
有人有解决方案吗?
最近我一直偏爱在Windows上运行的MySQL中使用命名管道(选项--enable-named-pipes),并通过.NET连接器驱动程序连接.它通常被推荐用于安全目的,但它允许我做的一件事是连接"." 作为连接字符串并在我的PC上开发并部署到服务器而不必更改连接字符串(指向服务器主机而不是我自己的数据库副本).
更重要的是,根据我的经验,有一些加速我归因于TCP的延迟优势.我在网上发现的一些参考文献回应:
我们使用命名管道成功测试MySQL 5.0,速度有多快!在这个大项目的情况下50%首先使用来自MySQL的最新JConnector驱动程序http://www.waltercedric.com/component/content/article/1217.html可能是个好主意
.
在简单的性能测试中,命名管道访问似乎比标准TCP/IP访问快30%-50%.但是,这会因系统而异,并且在许多Windows配置中命名管道比TCP/IP慢.
http://dev.mysql.com/doc/refman/5.1/en/connector-j-reference-configuration-properties.html
但在什么"配置"它更慢?无论如何,我一直在假设本地主机访问与TCP相比更快,但是,我还没有找到任何确定的东西.也许它对于使用的特定驱动程序更具体.
我想知道如何有效地比较两种集合类型(列表,集合,地图等).应该指出的是,结构上的平等不是基于参考的平等.
通常,必须遍历集合的所有元素并在它们之间进行比较,每次比较的成本为O(1),从而产生惊人的O(n)比较时间.
这可能会影响使用列表的哈希表,其中冲突检查相当昂贵或使用契约设计(例如,比较和旧的集合与新的).
我虽然有办法确定快速解决方案,但它们看起来都是开放式/非确定性的.如果能够使用可存储和比较的所有元素的某种独特散列,则可以使用这些想法.一个好的散列算法应该提供足够的enthropy,以便碰撞的可能性很小.
这种基于散列的比较技术可以通过使用一些列表头的恒定时间比较来加强(比如前10个元素).在开始时使用相同元素并使用良好散列算法的两个列表在理论上应该提供一些独特的比较.
是否有可能创建一种常数时间比较(在某些时候像整数一样泛化和专用),是否可以通过唯一哈希技术实现?
为了澄清这个问题,我不需要一个完美的平等检查,而是一个快速的"平等前"检查,作为一种加速真正的平等检查的方法.虽然许多哈希代码实现对集合比较很有用,但我也对列表(有序)比较感兴趣.
我希望从C#程序集中使用英特尔的数字随机数生成器(Ivy Bridge中的RDRAND指令).我看过cpp libs,但我希望有一个更"管理"的解决方案.有任何想法吗?
我们目前在项目中使用clearcase,并且有一个用clearcase生成的HTML文件,其中包含标签中包含的文件的所有文件名.
我应该使用不同的标签生成此文件.我知道如何使用cleartool命令行获取标签中包含的所有文件名,但这对生成文件没有帮助.我不想手动获取该列表并创建HTML文件.那么,我该如何创建这个文件呢?
我目前没有HTML文件的副本,但我已经看过了.希望这个问题不要太混乱和太模糊.我还是比较新的清楚,今天刚刚发现了一些cleartool命令,所以希望这是一个容易回答的问题.
在根据文档的Windows中的python 2.7中,您可以发送CTRL_C_EVENT (Python 2.7 Subprocess Popen.send_signal文档). 但是,当我尝试它时,我没有在子进程中收到预期的键盘中断.
这是父进程的示例代码:
# FILE : parentProcess.py
import subprocess
import time
import signal
CREATE_NEW_PROCESS_GROUP = 512
process = subprocess.Popen(['python', '-u', 'childProcess.py'],
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT,
universal_newlines=True,
creationflags=CREATE_NEW_PROCESS_GROUP)
print "pid = ", process.pid
index = 0
maxLoops = 15
while index < maxLoops:
index += 1
# Send one message every 0.5 seconds
time.sleep(0.5)
# Send data to the subprocess
process.stdin.write('Bar\n')
# Read data from the subprocess
temp = process.stdout.readline()
print temp,
if (index == 10):
# …
Run Code Online (Sandbox Code Playgroud) 我有一个适用于Windows XP的Perl脚本.它使用File :: Copy的move
功能将目录树移动到同一驱动器上的另一个位置.该脚本在Windows 2008上失败(静默).没有任何移动,没有删除任何内容.
我正在使用ActiveState Perl 5.10.0 Build 1005和它附带的File :: Copy.
有人知道Windows 2008上的ActiveState Perl可能会导致这个问题吗?
示例脚本:
use File::Copy;
print "Move AAA to ZZZ\n";
move("AAA", "ZZZ");
print "Done.\n";
Run Code Online (Sandbox Code Playgroud) 我想开发一个像这样工作的命令行程序:
myprogram/c [some_executable_here]
其中启动了用户指定的命令并"监视"了读取I/O的进程(以及任何子进程)以及该程序何时退出,打印"已读取"的文件列表(最终导致读取()系统调用).
我最初的实现操作系统是Windows,但我也想在Linux上做同样的事情.
到目前为止我看到的所有FileSystem类似手表的API都是为了观看目录(或单个文件),而不是进程,所以我不确定最好的方法是什么.
编辑:我正在寻找如何最终实现这个(或至少指向我可以遵循的API指针)的代码示例,以便在Windows和Linux上执行此操作.
另外要明确的是,它不能使用类似于OpendFilesView,procmon或grepping来自某些系统级工具的字符串的方法,这些方法无法通过ID(以及任何子进程)从其执行的开始和结束来明确地识别进程; IOW通过搜索"foo.exe"并获取错误信息,不会出现任何计时问题和误报的可能性.
我正在使用 Mercurial,并且修改了本地计算机中的文件。
hg status
返回
M settings.py
Run Code Online (Sandbox Code Playgroud)
但现在我不想提交更改,我想在上次更改之前收回我的文件。我该怎么做?
windows ×4
performance ×2
algorithm ×1
c ×1
c# ×1
c++ ×1
clearcase ×1
cleartool ×1
cmd ×1
copy ×1
cryptography ×1
deprecated ×1
filesystems ×1
gets ×1
intel ×1
kernel ×1
mercurial ×1
mysql ×1
named-pipes ×1
path ×1
perl ×1
popen ×1
python ×1
random ×1
rdrand ×1
report ×1
spaces ×1
subprocess ×1
temp ×1