Câu trả lời:
Tôi nghĩ rằng bạn muốn NUL
, ít nhất là trong một dấu nhắc lệnh hoặc các tệp bó.
Ví dụ:
type c:\autoexec.bat > NUL
không tạo một tập tin.
(Tôi tin điều tương tự cũng đúng nếu bạn cố gắng tạo một tệp theo chương trình, nhưng tôi đã không thử nó.)
Trong PowerShell, bạn muốn $null
:
echo 1 > $null
NUL:
(và CON:
, PRN:
...), Nó chủ yếu là một vấn đề của phong cách và hiển thị rõ ràng rằng NUL:
là một đối tượng đặc biệt và không phải là một tập tin gọi là NUL
. Ngoài ra, có thể với một API đặc biệt để tạo một tệp có tên NUL
(xem một trong các câu trả lời). Tôi mơ ước có thể một ngày nào đó, nếu mọi người sử dụng dấu hai chấm theo quy ước, chúng ta sẽ có thể loại bỏ các tên thiết bị đặc biệt đáng sợ :-)
Theo thông báo này trong danh sách gửi thư của GCC , bạn có thể sử dụng tệp "nul" thay vì / dev / null:
#include <stdio.h>
int main ()
{
FILE* outfile = fopen ("/dev/null", "w");
if (outfile == NULL)
{
fputs ("could not open '/dev/null'", stderr);
}
outfile = fopen ("nul", "w");
if (outfile == NULL)
{
fputs ("could not open 'nul'", stderr);
}
return 0;
}
(Tín dụng cho Daniel cho mã này; sao chép từ tin nhắn của anh ấy.)
Bạn cũng có thể sử dụng tệp "nul" đặc biệt này thông qua chuyển hướng.
C:\dev
thư mục trong Windows và bạn sử dụng nhiều tiện ích GNU, cuối cùng bạn sẽ có được một tệp bí ẩn có tên null trong thư mục đó.
NUL
trong Windows dường như thực sự là một đường dẫn ảo trong bất kỳ thư mục nào. Giống như ..
, .
trong bất kỳ hệ thống tập tin.
Sử dụng bất kỳ thư mục theo sau với NUL sẽ hoạt động.
Thí dụ,
echo 1 > nul
echo 1 > c:\nul
echo 1 > c:\users\nul
echo 1 > c:\windows\nul
có tác dụng tương tự như /dev/null
trên Linux.
Điều này đã được thử nghiệm trên Windows 7, 64 bit.
md \\.\c:\nul
quora.com/ rủi , gohacking.com/how-to-create-con-folder-in-windows , superuser.com/questions/86999/
nul
Jon Skeet là chính xác. Đây là trang Trình điều khiển thiết bị Nul trong tài liệu nhúng của Windows (Tôi không biết tại sao nó không ở đâu khác ...).
Đây là một:
NUL
làm việc theo chương trình là tốt. Ví dụ như sau:
freopen("NUL", "w", stderr);
hoạt động như mong đợi mà không tạo tập tin. (MSVC ++ 12.0)
NUL
, và nó đã qua thời điểm đó 5 năm trước.
Nếu bạn cần thực hiện trong Microsoft Windows, tương đương với một liên kết tượng trưng /dev/null
trong Linux, bạn sẽ mở và quản trị viên cmd
và gõ:
Đối với tệp:
mklink c:\path\to\file.ext NUL:
Hoặc, cho các thư mục:
mklink /D c:\path\to\dir NUL:
Điều này sẽ giữ cho tập tin / direcotry luôn ở mức 0 byte và vẫn trả lại thành công cho mỗi lần ghi.
Bạn phải sử dụng start và $ NUL cho điều này trong Windows PowerShell :
Nhập vào lệnh này giả sử mySum
là tên của ứng dụng của bạn và 5
10
là đối số dòng lệnh bạn đang gửi.
start .\mySum 5 10 > $NUL 2>&1
Các start
lệnh sẽ bắt đầu một quá trình tách ra, một hiệu ứng tương tự như &
. Các /B
ngăn chặn tùy chọn bắt đầu từ việc mở một cửa sổ terminal mới nếu chương trình bạn đang chạy là một ứng dụng console. và NUL
tương đương với Windows /dev/null
. Các 2>&1
cuối cùng sẽ chuyển hướng stderr để stdout, mà tất cả sẽ đi đến NUL
.